Alerts Prometheus qui se déclenchent pas sur la durée

Posté par nruiz le 04/05/2025
RÉSOLU

nruiz

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"

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 !

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