le flapping ça sent le for trop court ou la métrique pas assez lissée. tu peux essayer de mettre un for plus long genre 5m et voir si ça aide. ou alors agrège plus grossièrement ta métrique si tu peux te le permettre
si c'est par user_id c'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'utiliser group_left ou group_right si tu dois joindre des métriques pour éviter les désalignements
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 un avg_over_time sur 15-30min pour vraiment lisser les pics temporaires
attention à l'usage de rate() avec sum() si ton http_errors_total est un counter par user_id. si le user_id disparaît, le counter aussi. ce qui peut faire des alertes fantômes. il faudrait mieux un increase() ou s'assurer que tu ne perds pas de séries
ok merci pour les tips les gars ! en fait c'était une combinaison de for trop court et surtout un label endpoint_path qui rendait la cardinalité folle même après le sum 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 un for: 5m sur l'alerte. ça a l'air de tenir maintenant.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
theophile49
Membre depuis le 10/07/2019actif secouriste
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 ?