rate vs irate
rate(v[5m]): per-second-Durchschnitt
übers Fenster, extrapoliert an die Fensterränder,
Counter-Resets werden korrigiert, Standard für Alerts
und Dashboards.
irate(v[5m]): Momentanrate aus den
letzten zwei Samples, reagiert schnell, verschluckt alles
dazwischen. Nie für Alerts. Fenster immer groß genug
für mehrere Samples wählen.
Aggregationen
sum, avg, min,
max, count, topk,
quantile, Dimensionen steuern mit
by (labels) (behalten) oder
without (labels) (entfernen). Regel: erst
rate() pro Serie, dann sum(), nie umgekehrt.
histogram_quantile
histogram_quantile(0.99, ...) berechnet das
φ-Quantil aus klassischen le-Buckets (vorher
rate() auf _bucket, by (le)
behalten!) oder direkt aus Native Histograms. Ergebnis ist eine
Schätzung (Interpolation innerhalb des
Buckets).
# Fehlerquote pro Service (5m-Fenster)
sum by (service)
(rate(http_requests_total{code=~"5.."}[5m]))
/ sum by (service)
(rate(http_requests_total[5m]))
# p99 aus klassischem Histogram
histogram_quantile(0.99, sum by (le)
(rate(http_request_duration_seconds_bucket[5m])))
# p99 aus Native Histogram (keine _bucket-Serien)
histogram_quantile(0.99,
sum(rate(http_request_duration_seconds[5m])))