Aide-mémoire PromQL : requêtes courantes avec exemples

Des expressions PromQL prêtes à l’emploi pour les tâches de monitoring courantes : rate sur compteurs, agrégations, quantiles depuis les histogrammes, top-N et modèles d’alerte. Copiez-les et adaptez-les à vos métriques.

Sélecteurs et matchers

http_requests_total{job="api", code=~"5.."}
  • = correspondance exacte, != négation
  • =~ correspondance regex, !~ négation regex

Rate sur compteurs

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

rate() s’applique aux compteurs (monotones). La fenêtre [5m] doit couvrir au moins 4 scrapes.

Agrégations

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

Quantiles depuis les histogrammes

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

Ne groupez par le qu’à l’intérieur de histogram_quantile.

Taux d’erreur

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

Modèles d’alerte

# Hôte injoignable
up{job="node"} == 0

# CPU au-dessus de 90% pendant cinq minutes
avg by (instance) (rate(node_cpu_seconds_total{mode!="idle"}[5m])) > 0.9

# Le disque va bientôt être plein
predict_linear(node_filesystem_avail_bytes[6h], 4*3600) < 0

Astuces

  • increase(x[1h]) — croissance totale du compteur sur une heure
  • irate() pour des graphes réactifs, rate() pour les alertes
  • Filtrez d’abord par labels, agrégez ensuite — moins coûteux en cardinalité