rate e depois sum SIM, sum e depois rate NÃO
(robustperception.io)- Ao lidar com
counterno Prometheus, há um erro fácil de cometer ao aplicar funções exclusivas para counters, comorate, junto com agregação - No Prometheus, um counter só pode: “aumentar”, “permanecer igual” ou “ser reiniciado”
- Quando você quer obter a taxa de requisições por segundo do Node Exporter, pode escrever uma consulta como esta?
sum by (job)(rate(http_requests_total{job="node"}[5m]))
- Mas e esta consulta?
rate(sum by (job)(http_requests_total{job="node"})[5m])- Essa consulta tem um problema
- Se algum nó for reiniciado, o
http_requests_totaldo Node Exporter nesse nó será reiniciado para 0- Então o valor total de
sum(...)vai diminuir - O
rate()vai interpretar isso como se o counter tivesse sido reiniciado, gerando um spike incorreto- *se o valor cair de n para n-a, do ponto de vista do
rate, parecerá que houve um salto de (n-a) no valor
- *se o valor cair de n para n-a, do ponto de vista do
- Então o valor total de
- Portanto...
rate(counter_a[5m] + counter_b[5m])assim é NÃOrate(counter_a[5m]) + rate(counter_b[5m])assim é SIM
- Isso vale não só para
sum(), mas também para coisas comomin(),max(),avg(),ceil(),histogram_quantile()epredict_linear() - Além de
rate(), outras funções para counters incluemirate(),increase()eresets()
Os resumos marcados com * foram indicados separadamente porque são explicações adicionais que não estão no texto original.
Ainda não há comentários.