Loading...
Loading...
Prometheus metrics and PromQL queries. Use when writing PromQL queries, creating recording or alerting rules, debugging metric scraping issues, or understanding counter/gauge/histogram behavior.
npx skill4agent add kontrolplane/skills prometheusrate(http_requests_total[5m]) # Per-second average rate
irate(http_requests_total[5m]) # Instant rate (last 2 points, spiky)
increase(http_requests_total[1h]) # Total increase over rangerate()rate()irate()[duration]rate(metric[5m]) # Correct
rate(metric) # Error: expected range vector# This fails if label sets differ:
metric_a / metric_b
# Ignore extra labels:
metric_a / ignoring(extra_label) metric_b
# Match on specific labels only:
metric_a / on(common_label) metric_bhistogram_quantile(0.95,
sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
)_bucketlerate()by (le)by (le, endpoint)# Error rate percentage
sum(rate(http_requests_total{status=~"5.."}[5m]))
/ sum(rate(http_requests_total[5m]))
# CPU usage (node_exporter)
100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)
# Memory usage
1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)
# Container memory (Kubernetes)
sum by (pod) (container_memory_working_set_bytes{container!=""})groups:
- name: example
rules:
- alert: HighErrorRate
expr: |
sum(rate(http_requests_total{status=~"5.."}[5m])) by (job)
/ sum(rate(http_requests_total[5m])) by (job)
> 0.05
for: 5m # Must be firing for this duration
labels:
severity: warning
annotations:
summary: "Error rate {{ $value | humanizePercentage }} on {{ $labels.job }}"forrules:
- record: job:http_requests:rate5m
expr: sum by (job) (rate(http_requests_total[5m]))level:metric:operationsup == 0absent(metric)