Pourquoi `irate` de Prometheus ne capture pas les pics
(valyala.medium.com)- En PromQL,
rateetirateservent à calculer un taux par seconde - Il existe une idée reçue selon laquelle
iratecapture les pics sur l’intervalle [range], tandis querateen fait simplement la moyenne - En réalité,
iratecalcule uniquement le taux par seconde à partir des deux derniers points de données - Les deux derniers points de données visibles pour chaque requête dans
query_rangedépendent des paramètresstart,endetstep- Par conséquent, les tableaux de bord qui reposent sur
iratepeuvent varier fortement selon le zoom et le défilement
- Par conséquent, les tableaux de bord qui reposent sur
- Avec un compteur qui évolue brutalement, il est difficile pour
iratede capturer tous les pics
- Pour répondre à ce problème, MetricsQL (un langage de requête largement compatible avec PromQL) prend en charge la fonction
rollup_rate - Cette fonction calcule le taux entre chaque paire de points de données adjacents, puis renvoie les valeurs
min,avgetmax - Ainsi, tous les pics peuvent être capturés de manière cohérente dans
minetmax - En le visualisant directement dans un tableau de bord, on peut voir une bande vérifiant
rollup_rate(min)<=irate<=rollup_rate(max)
- Une autre idée reçue au sujet de
irateest qu’il serait plus rapide querate - C’est peut-être l’impression qu’il donne, puisqu’il ne regarde que les deux derniers points parmi ceux fournis sur l’intervalle [range]
- Mais en pratique, l’endroit où Prometheus consomme le plus de temps CPU, lors de l’utilisation de l’API
query_range, est l’extraction des points de données sur l’intervalle[start...end] - La fonction utilisée a donc peu d’impact sur les performances
- Mais en pratique, l’endroit où Prometheus consomme le plus de temps CPU, lors de l’utilisation de l’API
Comme ce point n’est pas expliqué dans l’article de blog, on peut ajouter que la différence entre l’utilisation de rollup_rate avec rollup="avg" et l’utilisation directe de avg avec rate est détaillée dans une autre réponse du développeur de MetricsQL.
Aucun commentaire pour le moment.