PromQL-Spickzettel: häufige Queries mit Beispielen

Fertige PromQL-Ausdrücke für typische Monitoring-Aufgaben: rate auf Countern, Aggregationen, Quantile aus Histogrammen, Top-N und Alert-Vorlagen. Kopieren und an die eigenen Metriken anpassen.

Selektoren und Matcher

http_requests_total{job="api", code=~"5.."}
  • = exakte Übereinstimmung, != Negation
  • =~ Regex-Treffer, !~ Regex-Negation

Rate auf Countern

sum(rate(http_requests_total[5m])) by (code)

rate() ist für Counter (monoton steigend). Das Fenster [5m] muss mindestens 4 Scrapes abdecken.

Aggregationen

avg by (instance) (node_load1)
topk(5, sum by (pod) (container_memory_working_set_bytes))

Quantile aus Histogrammen

histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

Nach le nur innerhalb von histogram_quantile gruppieren.

Fehlerrate

sum(rate(http_requests_total{code=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))

Alert-Vorlagen

# Host ist nicht erreichbar
up{job="node"} == 0

# CPU über 90% für fünf Minuten
avg by (instance) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) > 0.9

# Festplatte läuft bald voll
predict_linear(node_filesystem_avail_bytes[6h], 4*3600) < 0

Tipps

  • increase(x[1h]) — gesamtes Counter-Wachstum über eine Stunde
  • irate() für flotte Graphen, rate() für Alerts
  • Erst nach Labels filtern, dann aggregieren — günstiger bei der Kardinalität