Membre depuis le 07/10/2024
yo tout le monde j'ai une alerte prometheus qui est censée me notifier si l'utilisation CPU d'un service dépasse 80% pendant 5 minutes. le graphique montre bien que c'est le cas mais l'alerte reste en pending et ne passe jamais en firing. ma config d'alerte semble bonne pourtant
# rule prometheus
- alert: HighCpuUsage
expr: avg_over_time(node_cpu_seconds_total{mode="idle", instance="my-service"}[5m]) * 100 < 20
for: 5m
labels:
severity: critical
annotations:
summary: "CPU usage on my-service is high"
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
Commentaires
cparis
Membre depuis le 07/04/2025
salut. ton expr est un peu tricky. node_cpu_seconds_total{mode="idle"} c'est le temps cpu en mode idle. si tu veux le cpu usage faut faire 1 - avg_over_time(node_cpu_seconds_total{mode="idle"}[5m]) etc. là tu alertes quand le idle est bas donc quand l'usage est haut mais l'expression est inversée par rapport à ce que tu penses
anne-poulain
Membre depuis le 21/07/2024
et le node_cpu_seconds_total c'est un counter pas un gauge. faut utiliser un rate() ou increase() dessus pour avoir l'évolution. faire un avg_over_time direct sur un counter comme ça c'est bizarre. tu devrais plutôt utiliser 1 - avg_over_time(rate(node_cpu_seconds_total{mode="idle"}[1m]))
cparis
Membre depuis le 07/04/2025
exactement. et n'oublie pas de multiplier par 100 à la fin si tu veux un pourcentage. donc ça donnerait quelque chose comme 100 * (1 - avg_over_time(rate(node_cpu_seconds_total{mode="idle", instance="my-service"}[5m]))) > 80
dgomez
Membre depuis le 30/09/2024
aussi double-check ton alerting rule syntaxe avec promtool check rules sinon y'a des erreurs silencieuses et le for: 5m veut dire qu'il faut que la condition soit vraie pendant 5 minutes avant de passer en firing pas juste qu'elle ait été vraie à un moment donné dans les 5min
nruiz
Membre depuis le 07/10/2024
ah purée j'ai mélangé les pinceaux entre idle et usage total. je vais corriger l'expr avec le rate et 1 - et les pourcentages. c'est pour ça que ça restait en pending j'avais le mauvais calcul. thx pour le coup de main c'était pas du tout clair dans ma tête
cparis
Membre depuis le 07/04/2025
pas de souci classique comme erreur avec les métriques CPU. tu peux aussi tester ton expr directement dans l'interface de prometheus pour voir ce qu'il te retourne en live avant de le coller dans l'alerting rule
nruiz
Membre depuis le 07/10/2024
oui je vais faire ça c'est une bonne idée pour le debug. merci !