Alerting
Configuration des alertes basées sur les logs.
Types d'Alertes
1. Alertes Grafana (Recommandé)
Grafana permet de créer des alertes directement depuis les dashboards.
2. Alertes Loki Ruler
Loki peut évaluer des règles et envoyer des alertes vers Alertmanager.
Créer une Alerte Grafana
Étape 1 : Créer une requête
Dans un dashboard, créez un panel avec une requête LogQL :
Étape 2 : Configurer l'alerte
- Cliquez sur Alert dans l'éditeur du panel
- Configurez les conditions :
- Condition :
WHEN last() OF query(A) IS ABOVE 10 - Evaluate every :
1m - For :
5m
Étape 3 : Configurer les notifications
- Allez dans Alerting > Contact points
- Ajoutez un point de contact (Email, Slack, Discord, etc.)
Exemples d'Alertes Utiles
Trop d'erreurs
# Alerte si plus de 50 erreurs en 5 minutes
sum(count_over_time({env="prod"} |~ "(?i)(error|exception)" [5m])) > 50
Application silencieuse
Erreurs critiques
Latence élevée (si loggée)
Règles Loki (Avancé)
Créez un fichier de règles dans /opt/monitoring/config/rules/ :
# alerts.yml
groups:
- name: lyroh-alerts
interval: 1m
rules:
- alert: HighErrorRate
expr: |
sum(rate({env="prod"} |~ "(?i)error" [5m])) > 0.1
for: 5m
labels:
severity: warning
annotations:
summary: "Taux d'erreurs élevé en production"
description: "Plus de 0.1 erreurs/seconde détectées"
- alert: ApplicationDown
expr: |
absent(count_over_time({app="nestjs-backend"} [5m]))
for: 5m
labels:
severity: critical
annotations:
summary: "Application nestjs-backend ne produit plus de logs"
Canaux de Notification
Slack
# Dans Grafana > Alerting > Contact points
type: slack
settings:
url: https://hooks.slack.com/services/XXX/YYY/ZZZ
channel: "#alerts"
username: "Grafana"
Discord
Bonnes Pratiques
- Évitez les faux positifs : Utilisez des seuils réalistes et des durées
forappropriées - Groupez les alertes : Ne créez pas une alerte par application, utilisez des labels
- Documentez : Ajoutez des annotations utiles pour le debugging
- Testez : Vérifiez que les notifications arrivent bien