rate puis sum OUI, sum puis rate NON
(robustperception.io)- Lorsqu’on manipule des compteurs dans Prometheus, il est facile de se tromper en appliquant des fonctions réservées aux compteurs comme
rateainsi que des agrégations - Dans Prometheus, un compteur ne peut que « augmenter », « rester inchangé » ou « être réinitialisé »
- Si l’on veut obtenir le taux de requêtes par seconde de Node Exporter, on peut écrire une requête comme celle-ci ?
sum by (job)(rate(http_requests_total{job="node"}[5m]))
- Mais alors, qu’en est-il de la requête suivante ?
rate(sum by (job)(http_requests_total{job="node"})[5m])- Cette requête pose problème
- Si un nœud redémarre, alors
http_requests_totaldu Node Exporter sur ce nœud est réinitialisé à 0- Dans ce cas, la valeur de
sum(...)globale diminue rate()considère alors que le compteur a été réinitialisé, ce qui crée un pic erroné- *si la valeur baisse de n à n-a, du point de vue de
rate, cela revient à un saut de (n-a)
- *si la valeur baisse de n à n-a, du point de vue de
- Dans ce cas, la valeur de
- Donc...
rate(counter_a[5m] + counter_b[5m]): NONrate(counter_a[5m]) + rate(counter_b[5m]): OUI
- Cela vaut aussi non seulement pour
sum(), mais également pourmin(),max(),avg(),ceil(),histogram_quantile()etpredict_linear() - Outre
rate(), il existe aussi pour les compteurs des fonctions commeirate(),increase()etresets()
Les résumés marqués d’un * sont des explications ajoutées qui ne figurent pas dans le texte original.
Aucun commentaire pour le moment.