Membre depuis le 17/04/2024
hey la team on a un souci avec une alerte prometheus. je veux qu'une alerte se déclenche si l'utilisation cpu moyenne sur 5 minutes dépasse 80% sur un de nos serveurs critiques. j'ai défini la règle dans alertmanager mais elle se déclenche jamais même si je vois bien le cpu monter au-dessus de 80% dans grafana
# prometheus rule
groups:
- name: critical-servers
rules:
- alert: HighCPUCriticalServer
expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle", instance=~"server-prod-.*"}[5m])) * 100) > 80
for: 5m
labels:
severity: critical
annotations:
summary: "High CPU usage on critical server {{ $labels.instance }}"
description: "CPU usage on {{ $labels.instance }} is above 80% for 5 minutes."
dans grafana la query marche nickel et je vois les serveurs monter en cpu mais l'alerte reste en pending ou suppressed jamais firing. je comprends pas pourquoi elle passe pas en firing
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
Commentaires
auguste86
Membre depuis le 21/07/2024
salut. t'as vérifié que prometheus scrape bien les metrics de ces instances ? et que les labels instance=~"server-prod-.*" correspondent bien à tes cibles. des fois une coquille dans le regex ça fausse tout. tu peux voir dans la target status de prometheus si tes cibles sont up et scrappées
edouard21
Membre depuis le 17/04/2024
oui oui les cibles sont bien scrappées et les labels correspondent c'est le même regex que j'utilise partout. les métriques s'affichent correctement dans grafana c'est ça qui est dingue. la query prometheus renvoie bien des valeurs > 80 quand le cpu est haut
thomas-desousa
Membre depuis le 29/06/2024
le probleme vient peut être de ton for: 5m. si la métrique reste au-dessus de 80% mais pas continuellement pendant 5 minutes pile mais qu'il y a des petits creux ça reset le timer. tu peux essayer de réduire le for: à 1m juste pour tester si ça se déclenche ou utiliser un plus large time window pour le rate si la métrique est un peu volatile
aussi le avg by (instance) est correct mais assure-toi que tu n'as pas plusieurs modes idle qui feraient des moyennes bizarres si tu as des cpus virtuels ou hyperthreading qui se comportent bizarrement
edouard21
Membre depuis le 17/04/2024
j'ai réduit le for à 1m pour tester et... ça s'est déclenché ! bien vu pour le for. le cpu doit avoir des micro-chutes qui resettaient le timer. je vais laisser à 1m ou 2m ça me convient mieux pour l'alerte. thx pour l'astuce !
emilie01
Membre depuis le 16/04/2024
cool que ça marche ! un autre truc pour ce genre de métriques volatiles: tu peux utiliser avg_over_time à la place du rate puis avg by. ça lisse un peu mieux les pics et creux sur la période. juste pour info si tu as d'autres alertes qui posent problème avec des métriques moins stables
edouard21
Membre depuis le 17/04/2024
ah top ça je savais pas pour avg_over_time. je vais regarder ça pour nos prochaines règles. merci à tous pour l'aide précieuse !