2 pontos por dongho42 2024-11-24 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Ao lidar com counter no Prometheus, há um erro fácil de cometer ao aplicar funções exclusivas para counters, como rate, 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_total do 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
  • Portanto...
    • rate(counter_a[5m] + counter_b[5m]) assim é NÃO
    • rate(counter_a[5m]) + rate(counter_b[5m]) assim é SIM
  • Isso vale não só para sum(), mas também para coisas como min(), max(), avg(), ceil(), histogram_quantile() e predict_linear()
  • Além de rate(), outras funções para counters incluem irate(), increase() e resets()

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.

Ainda não há comentários.