prometheus
/prometheus
Pomaga w monitoringu Prometheus: PromQL, typy metryk (Counter, Gauge, Histogram), konfiguracje scrape i Alertmanager dla mikroserwisów.
- Autor
- G1Joshi ↗
- Repozytorium
- Agent-Skills ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 01.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 2
Brak sygnałów. Repozytorium zmienione 01.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Pomaga w monitoringu Prometheus: PromQL, typy metryk (Counter, Gauge, Histogram), konfiguracje scrape i Alertmanager dla mikroserwisów.
Oryginalny opis (EN)
Expert Prometheus monitoring assistance covering PromQL, metric types (Counter, Gauge, Histogram), scrape configs, and Alertmanager. Use when collecting and querying operational metrics across microservices.
Jak działa
- When to Use
- Quick Start
- Core Concepts
- Common Patterns
- Best Practices
- Troubleshooting
- References
Podgląd SKILL.md
---
name: prometheus
description: Expert Prometheus monitoring assistance covering PromQL, metric types (Counter, Gauge, Histogram), scrape configs, and Alertmanager. Use when collecting and querying operational metrics across microservices.
---
# Prometheus
Prometheus is the CNCF graduated monitoring and alerting toolkit, featuring a multi-dimensional data model with time-series metrics, PromQL, and native OpenTelemetry ingestion.
## When to Use
- **Cloud-Native Time-Series Monitoring**: Scraping, storing, and querying numerical metrics from infrastructure and applications.
- **PromQL Quantitative Querying**: Computing request rates, 99th percentile latencies, error ratios, and saturations.
- **Automated Service Discovery**: Dynamically discovering Kubernetes pods, EC2 instances, and Consul nodes to scrape.
- **Alerting Rules & Alertmanager Integration**: Evaluating threshold rules and dispatching alerts to on-call engineers.
## Quick Start
```yaml
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: "node"
static_configs:
- targets: ["localhost:9100"]
```
## Core Concepts
### Prometheus Scrape Configuration (prometheus.yml)
Configuring scrape jobs with relabeling:
```yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
- "alert_rules.yml"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "api-microservices"
scrape_interval: 10s
metrics_path: "/metrics"
kubernetes_sd_configs:
- role: pod
namespaces:
names: ["production"]
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: "true"
- source_labels: [__meta_kubernetes_pod_container_port_number]
action: keep
regex: "8080"
```
### Production Alerting Rules (alert_rules.yml)
Defining SLO-based alert thresholds:
```yaml
groups:
- name: API_SLO_Alerts
rules:
- alert: HighHttpErrorRate
expr: |
(
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
) * 100 > 5
for: 2m
labels:
severity: critical
annotations:
summary: "High HTTP 5xx error rate on {{ $labels.service }}"
description: 'Service {{ $labels.service }} error rate is {{ $value | printf "%.2f" }}% (> 5% SLO threshold).'
```
### Exposing Custom Metrics in Python
Instrumentation using official Prometheus Python client:
```python
from prometheus_client import start_http_server, Counter, Histogram
import time
REQUEST_COUNTER = Counter(
'http_requests_total',
'Total count of HTTP requests processed',
['method', 'endpoint', 'status']
)
REQUEST_DURATION = Histogram(
'http_request_duration_seconds',
'Histogram of HTTP request latency in seconds',
['endpoint'],
buckets=(0.01, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0)
)
@REQUEST_DURATION.labels(endpoint='/api/orders').time()
def process_order():
time.sleep(0.08)
REQUEST_COUNTER.labels(method='POST', endpoint='/api/orders', status='200').inc()
# Start metrics endpoint server on port 8000
start_http_server(8000)
```
## Common Patterns
### High-Throughput Scrape Config with Kubernetes Service Discovery
**Problem**: Static IP scraping configurations fail as pods scale dynamically in Kubernetes.
**Solution**:
Use `kubernetes_sd_configs` with metric path annotations:
```yaml
scrape_configs:
- job_name: "kubernetes-pods"
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels:
[__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
```
## Best Practices
**Do**:
- Adhere strictly to the Four Golden Signals (Latency, Traffic, Errors, Saturation) when building PromQL alert rules.
- Configure appropriate histogram buckets around your service SLO targets (e.g. 100ms, 200ms, 500ms).
- Use recording rules (`record: job:metric:rate5m`) for complex PromQL expressions queried by dashboards.
- Store long-term historical metrics using remote-write storage (Thanos, Cortex, or VictoriaMetrics).
**Don't**:
- Introduce high-cardinality label values (user IDs, email addresses, order IDs) into metric labels.
- Set scrape intervals too low (< 5s) across large fleets; it overloads target scrapers and storage.
- Alert on simple transient spikes; always use `for: 2m` or `for: 5m` to filter temporary noise.
## Troubleshooting
| Error | Cause | Solution |
| :------------------------------------------- | :-------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |
| `Target shows DOWN in Prometheus Targets UI` | Scrape target port firewalled or application metrics path crashing. | Test target endpoint manually: `curl http://<pod-ip>:<port>/metrics`. |
| `High memory usage / Prometheus OOM` | High churn in metric series (high cardinality tags like UUIDs or user emails). | Audit and drop unbounded labels using `metric_relabel_configs`. |
| `PromQL: many-to-many matching not allowed` | Vector matching join (`on(...)`) without `group_left` or `group_right` modifiers. | Add `group_left` or `group_right` to specify many-to-one relationship. |
## References
- [Prometheus Documentation](https://prometheus.io/)
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · G1Joshi/Agent-Skills | 100 | MIT |
| xobotyi/cc-foundry | 100 | MIT |
| grafana/skills | 100 | Apache-2.0 |
| julianobarbosa/claude-code-skills | 100 | MIT |
| dkbnull/hello-skill | 96 | MIT |
| CloudChef/atlasclaw-providers | 91 | Apache-2.0 |
Migawka bazy z 28.10.2026 · wersja paczki ecc6ae904b98 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100prometheus-grafana
Konfiguruje zbieranie i wizualizację metryk w Prometheus i Grafana: cele scrape, zapytania PromQL, dashboardy i alerting. - 100prometheus-expert
Wspiera monitoring Prometheus: zbieranie metryk, zapytania PromQL, alerty i operacje produkcyjne, w tym instalację na Kubernetes i ServiceMonitor. - 100prometheus-analysis
Pomaga odpytywać i analizować metryki Prometheus, sprawdzać alerty i pisać zapytania PromQL do analizy przyczyn źródłowych. - 100prometheus-and-grafana-monitoring-stack
Prowadzi przez budowę i obsługę stosu Prometheus i Grafana w Kubernetes oraz środowiskach hybrydowych: scrape i service discovery, PromQL, trasy Alertmanagera oraz Grafana jako kod. - 100add-metric
Dodaje lub zmienia metrykę, czyli licznik, gauge lub histogram, albo śledzenie i pomiar operacji. - 90prometheus-alerting-cardinality-review
Przegląda konfigurację Prometheus i AlertManager pod kątem kardynalności, poprawności alertów, bezpieczeństwa scrape'ów, remote_write i retencji, oceniając gotowość do produkcji.