Prometheus alertes qui spamment pour rien

joly-sebastien 02/05/2025
RÉSOLU
joly-sebastien
Auteur Actif
Avatar de joly-sebastien
joly-sebastien
Auteur Actif

salut la team ! j'ai un souci avec nos alertes prometheus. on a des alertes qui se déclenchent pour un rien ou qui reviennent en boucle alors que le problème est résolu. par exemple, une alerte sur l'utilisation cpu d'un service qui monte à 90% pendant 30s, l'alerte part, puis ça redescend, et 5 min après ça remonte 30s, l'alerte repart. ça spamme nos channels slack pour des micro-incidents. y'a un truc pour calmer le jeu ?

02/05/2025 à 01:20

7 commentaires

wlelievre
Membre Actif
Avatar de wlelievre
wlelievre
Membre Actif

Ouais le flapping d'alertes c'est chiant. Tu utilises quelle clause FOR dans tes règles d'alerte ? Si t'en as pas ou si elle est trop courte, genre FOR 1m, dès que ça dépasse la métrique paf ça alerte. Essaye de mettre un FOR 5m ou 10m pour que la condition persiste avant de déclencher.

03/05/2025 à 00:47
joly-sebastien
Auteur Actif
Avatar de joly-sebastien
joly-sebastien
Auteur Actif

J'ai déjà un FOR 2m sur la plupart. C'est pas ouf mais on veut être réactifs. Le problème c'est que le CPU monte et descend régulièrement mais jamais très longtemps. Du coup ça déclenche, ça résout, ça déclenche, etc. même avec 2min.

03/05/2025 à 19:35
llopez
Membre
Avatar de llopez
llopez
Membre

en plus du for, regarde la config de ton alertmanager. t'as configuré des inhibit rules ou des group_by pour éviter le spam ? si tes alertes sont similaires sur plusieurs instances mais que tu t'en fous d'être notifié pour chaque instance séparément, le group_by aide à ne recevoir qu'une seule notification groupée.

04/05/2025 à 17:36
joly-sebastien
Auteur Actif
Avatar de joly-sebastien
joly-sebastien
Auteur Actif

Alors l'Alertmanager a des group_by sur l'alerte name mais pas plus fin que ça. Et pas d'inhibit rules spécifiques à ce genre de cas de flapping.

05/05/2025 à 13:53
wlelievre
Membre Actif
Avatar de wlelievre
wlelievre
Membre Actif

Essaie d'ajouter un group_by: ['alertname', 'service', 'severity'] si ça a du sens pour toi. Et regarde les repeat_interval sur tes receivers. Si c'est trop court genre 1m, tu peux avoir des repush de l'alerte si elle se résout et revient vite.

Modifié le 23/05/2026 à 16:20
llopez
Membre
Avatar de llopez
llopez
Membre

Pense aussi à la fonction avg_over_time dans ta query Prometheus. Au lieu de node_cpu_utilisation > 90, fais avg_over_time(node_cpu_utilisation[5m]) > 80. Ça lisse les pics courts et ça réduit la sensibilité au flapping. Ça peut être la solution.

Modifié le 23/05/2026 à 16:20
joly-sebastien
Auteur Actif
Avatar de joly-sebastien
joly-sebastien
Auteur Actif

Ok, le avg_over_time et le group_by plus précis dans Alertmanager, je tente ça. J'ai remonté le FOR à 3m et j'ai mis le avg_over_time sur 5m pour les CPU. Ça a l'air de beaucoup mieux fonctionner, on a quasiment plus de spam pour ces petites variations. Merci pour les tips !

08/05/2025 à 09:06

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