PromQL (Prometheus Query Language) est le langage de requête de Prometheus. Il permet d’interroger des métriques temporelles et de les agréger, filtrer, joindre pour produire des alertes et des visualisations.


Notes détaillées

NoteContenu
PromQL Basics4 types de métriques, types de vecteurs (instant/range), sélecteurs, rate()/increase(), agrégation spatiale
Vector MatchingJointures one-to-one, many-to-one, opérateurs logiques (and, or, unless)
label_replace()Manipulation de labels : extraction par regex, renommage, cas pratiques Kubernetes

Types de métriques Prometheus

TypeDescriptionExemple
CounterValeur monotone croissante (ne redescend pas)http_requests_total
GaugeValeur qui monte et descend librementnode_memory_MemFree_bytes
HistogramDistribution en buckets (latence, taille)http_request_duration_seconds
SummaryQuantiles pré-calculés côté apprpc_duration_seconds

Syntaxe de base

# Sélection simple
http_requests_total
 
# Filtrage par label
http_requests_total{job="api", status=~"5.."}
 
# Taux d'augmentation sur 5m (pour un Counter)
rate(http_requests_total[5m])
 
# Agrégation — total par job
sum by (job) (rate(http_requests_total[5m]))
 
# Top 5 des endpoints les plus lents
topk(5, rate(http_request_duration_seconds_sum[5m]))

Opérateurs de filtrage

OpérateurUsage
=Égalité exacte
!=Différent
=~Regex (ex: status=~"5..")
!~Ne correspond pas à la regex

Agrégation spatiale

FonctionRôle
sumSomme
avgMoyenne
max / minMaximum / Minimum
countNombre de séries
topk(n, ...)Top N séries
by (label)Garder uniquement ces labels
without (label)Supprimer ces labels

En relation avec