Alerte Prometheus qui spamme à cause d'une métrique flakey

Posté par laurent-gerard le 03/04/2025
RÉSOLU

laurent-gerard

Membre depuis le 11/10/2024

Salut. J'ai une alerte prometheus qui devient folle. Elle est censée me prévenir quand un de nos services est en mode dégradé (mettons moins de 90% de succès sur les requêtes). Le problème c'est que parfois pour des petits pics de trafic ça descend à 85% pendant 30s puis ça remonte à 99%. Du coup l'alerte se déclenche et s'arrête en boucle ça spamme à mort


# règle d'alerte simplifiée
- alert: ServiceDegrade
  expr: (sum(rate(http_requests_total{job="my-service",status="2xx"}[5m])) / sum(rate(http_requests_total{job="my-service"}[5m]))) * 100 < 90
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Service MY-SERVICE a un taux de succès trop bas"

Commentaires

michelle58

Membre depuis le 28/08/2019

salut. le paramètre for: 5m est déjà là c bien. mais ton problème c que même sur 5m ça peut fluctuer. essaie de lisser un peu plus ta métrique. tu peux utiliser avg_over_time sur une période plus longue ou augmenter le for

laurent-gerard

Membre depuis le 11/10/2024

j'avais pensé à augmenter le for mais 5min c'est déjà pas mal pour un service dégradé. si j'augmente à 10 ou 15min on va louper des trucs. avg_over_time c'est pour la moyenne sur une période c'est ça ?

nicole46

Membre depuis le 04/04/2019

oui exactement. tu peux faire quelque chose comme avg_over_time(sum(rate(http_requests_total{...status="2xx"}[1m]))[15m:1m]) par exemple. ça te donne une moyenne mobile sur 15 minutes des taux de succès calculés sur 1 minute. ça va bien lisser les spikes

laurent-gerard

Membre depuis le 11/10/2024

ah ok je vois le truc. donc je calcule ma métrique toutes les minutes et j'en fais une moyenne sur les 15 dernières minutes. ça paraît plus robuste en effet. le for: 5m reste bien après ça ?

michelle58

Membre depuis le 28/08/2019

le for 5m oui ça reste bon. ça veut dire que même avec la moyenne lissée, il faut que le problème persiste 5 minutes avant de déclencher l'alerte. ça ajoute une couche de persistance

laurent-gerard

Membre depuis le 11/10/2024

d'acc je vais tester ça je change l'expr. ça me parait bien plus solide pour éviter le flapping d'alertes. thx les gars

nicole46

Membre depuis le 04/04/2019

pense aussi au threshold des fois il faut le monter un peu si c'est trop sensible. genre 88% au lieu de 90% pour être sûr que c'est un vrai souci

laurent-gerard

Membre depuis le 11/10/2024

bon j'ai mis en place l'avg_over_time sur 15m. depuis plus de spam d'alertes et quand ça tombe c'est que c'est une vraie dégradation. nickel !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire