Alerte Prometheus faux positifs sur Kubernetes

ufrancois 23/10/2024
RÉSOLU
ufrancois
Auteur
Avatar de ufrancois
ufrancois
Auteur

yo la team j'ai un souci avec mes alertes Prometheus sur Kubernetes. je monitore l'utilisation CPU et Memory de mes pods et j'ai plein de faux positifs. genre un pod qui a un petit pic de CPU pendant 30s et ça déclenche une alerte alors qu'il revient à la normale direct. ça génère trop de bruit


# exemple de règle d'alerte actuelle
- alert: HighCpuUsage
  expr: sum(rate(container_cpu_usage_seconds_total{container!=""}[1m])) by (pod) > 0.8
  for: 2m
  labels:
    severity: warning
  annotations:
    summary: "Pod {{ $labels.pod }} CPU usage is high"
23/10/2024 à 17:10

4 commentaires

guichard-victor
Membre Actif Secouriste
Avatar de guichard-victor
guichard-victor
Membre Actif Secouriste

salut ! le rate sur 1m c trop court pour les pics. essaie d'utiliser avg_over_time sur une période plus longue genre 5m ou 10m pour lisser les pics temporaires. et le for: 2m c'est déjà pas mal mais si t'as des micro-bursts fréquents ça peut quand même t'embêter


# exemple de modification
expr: avg_over_time(rate(container_cpu_usage_seconds_total{container!=""}[1m])[5m:]) > 0.8
24/10/2024 à 15:53
noemi38
Membre Actif
Avatar de noemi38
noemi38
Membre Actif

c'est ça l'idée. ou sinon tu peux même utiliser un quantile pour détecter les outliers plutôt qu'un seuil fixe. si tu veux pas que les 99% des pics courts déclenchent l'alerte, tu peux faire un truc comme quantile_over_time(0.95, rate(...)[5m:]) et tu mets un seuil plus bas dessus

25/10/2024 à 13:37
martins-margot
Membre Actif Secouriste
Avatar de martins-margot
martins-margot
Membre Actif Secouriste

et une autre option si tu veux anticiper les pics avant qu'ils deviennent un problème c'est d'utiliser predict_linear. ça va essayer de prédire si ton CPU va dépasser un certain seuil dans le futur proche genre les 30 prochaines minutes. ça aide à passer en mode proactif


# exemple
expr: predict_linear(container_cpu_usage_seconds_total{container!=""}[1h], 30 * 60) > 0.9
26/10/2024 à 12:38
ufrancois
Auteur
Avatar de ufrancois
ufrancois
Auteur

ok j'ai revu la règle avec avg_over_time(rate(...)[5m:]) et ça a l'air bcp mieux. j'ai pu augmenter le for aussi sans avoir de faux positifs. moins de bruit c'est top. merci les gars pour les idées !

27/10/2024 à 06:45

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