Sujet :
RÉSOLU
Liste des sujets Répondre Créer un sujet
Membre depuis le 04/05/2024
salut tout le monde ! j'ai un souci avec prometheus. on a des alertes qui flappent à mort sur un service qui expose pas mal de métriques avec une très forte cardinalité (genre par user_id). l'alerte est simple, si http_errors_total > X sur 5min. ça s'active, ça se désactive, ça devient insupportable. comment je stabilise ça sans juste augmenter les seuils ?
# exemple d'alerte (simplifiée)
- alert: highhttperrors
expr: sum(rate(http_errors_total[5m])) by (service_name) > 50
for: 2m
labels:
severity: warning
annotations:
summary: "trop d'erreurs http sur {{ $labels.service_name }}"
vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
lmarty
Membre depuis le 10/05/2024
le flapping ça sent le
fortrop court ou la métrique pas assez lissée. tu peux essayer de mettre unforplus long genre 5m et voir si ça aide. ou alors agrège plus grossièrement ta métrique si tu peux te le permettrebenoit-pons
Membre depuis le 25/06/2024
si c'est par
user_idc'est la cata effectivement.sum by (service_name)c'est pas mal mais est-ce que tu n'as pas des instances qui meurent et renaissent rapidement ? ça peut créer des gaps. essaie d'utilisergroup_leftougroup_rightsi tu dois joindre des métriques pour éviter les désalignementsmichelle38
Membre depuis le 21/07/2024
perso quand j'ai du flapping avec de la cardinalité de ouf je vérifie toujours la rétention de prometheus et le nombre de series. si ça explose c que ton scraping est trop fin ou ta métrique est mal conçue pour l'alerte. tu peux tenter un
sum by (service_name)mais avec unavg_over_timesur 15-30min pour vraiment lisser les pics temporairesoguillon
Membre depuis le 16/04/2025
attention à l'usage de
rate()avecsum()si tonhttp_errors_totalest un counter paruser_id. si le user_id disparaît, le counter aussi. ce qui peut faire des alertes fantômes. il faudrait mieux unincrease()ou s'assurer que tu ne perds pas de sériestheophile49
Membre depuis le 04/05/2024
ok merci pour les tips les gars ! en fait c'était une combinaison de
fortrop court et surtout un labelendpoint_pathqui rendait la cardinalité folle même après lesum by service_name. j'ai refactorisé la métrique pour ne pas inclure ce label dans les alertes mais dans des dashboards spécifiques et j'ai mis unfor: 5msur l'alerte. ça a l'air de tenir maintenant.