
Les alertes sur seuils fixes ratent les anomalies subtiles. CPU à 60% un lundi matin ? Normal, tout le monde se connecte. CPU à 60% un dimanche à 3h ? Suspect.
Le problème : les métriques Kubernetes ont des patterns. Saisonnalité quotidienne, pics hebdomadaires, variations selon les déploiements. Un seuil statique ignore tout ça.
Ce script utilise Prophet pour modéliser ces patterns. Il apprend la “normale” sur 7 jours d’historique, puis détecte les écarts significatifs. Une hausse prévue n’alerte pas. Une hausse inattendue, si.
Métriques générées
Le script écrit trois métriques dans VictoriaMetrics :
prophet_prediction: valeur attendue selon le modèleprophet_anomaly: 1 si anomalie détectée, 0 sinonprophet_anomaly_score: distance aux bornes de confiance (plus c’est haut, plus c’est anormal)
Ces métriques permettent de créer des alertes intelligentes dans Grafana ou Alertmanager.
Lancer le détecteur
|
|
Par défaut, le script analyse CPU et mémoire par namespace sur 7 jours d’historique. On peut passer ses propres queries via QUERIES="cpu=sum(rate(cpu[5m]))".
Code source
📥 anomaly_detector.py — Script principal 📥 Dockerfile — Image Docker