3 KiB
3 KiB
Configuration Prometheus - veza-backend-api
Activation des Alertes
1. Ajouter les règles dans Prometheus
Copier alerts.yml dans le répertoire de configuration Prometheus:
# Exemple: /etc/prometheus/rules/veza-backend-api.yml
cp ops/prometheus/alerts.yml /etc/prometheus/rules/veza-backend-api.yml
2. Configurer Prometheus
Ajouter dans prometheus.yml:
rule_files:
- "/etc/prometheus/rules/veza-backend-api.yml"
scrape_configs:
- job_name: 'veza-backend-api'
scrape_interval: 15s
metrics_path: '/metrics'
static_configs:
- targets: ['localhost:8080'] # Adapter selon déploiement
3. Redémarrer Prometheus
sudo systemctl restart prometheus
# ou
docker-compose restart prometheus
4. Vérifier les alertes
# Via Prometheus UI
http://localhost:9090/alerts
# Via API
curl http://localhost:9090/api/v1/alerts
Métriques Requises
Les alertes utilisent les métriques suivantes (déjà exposées par veza-backend-api):
veza_circuit_breaker_state- État du circuit breaker (0=closed, 1=half-open, 2=open)veza_db_pool_open_connections- Nombre de connexions DB ouvertesveza_db_pool_wait_count_total- Nombre de fois qu'une connexion a dû attendreveza_gin_http_requests_total- Total requêtes HTTP (method, path, status)veza_gin_http_request_duration_seconds- Durée des requêtes HTTPveza_health_check_status- Statut health check (1=ok, 0.5=slow, 0=error)
Seuils Configurés
| Alerte | Seuil | Durée | Sévérité |
|---|---|---|---|
| Circuit Breaker Open | state == 2 | 5 min | Critical |
| DB Pool > 80% | > 16/20 connexions | 5 min | Warning |
| DB Pool Exhausted | wait rate > 0.1/s | 2 min | Critical |
| Erreurs 5xx > 5% | > 5% des requêtes | 5 min | Warning |
| Erreurs 5xx > 10/s | > 10 erreurs/s | 2 min | Critical |
| Latence P95 > 1s | P95 > 1s | 5 min | Warning |
| Latence P99 > 5s | P99 > 5s | 3 min | Warning |
Ajustement des Seuils
Pour ajuster les seuils selon votre environnement:
-
DB Pool Max Connections: Si différent de 20, modifier l'expression dans
VezaDBPoolHighUsage:expr: veza_db_pool_open_connections / <VOTRE_MAX> > 0.8 -
Taux Erreurs 5xx: Ajuster le seuil (actuellement 5%):
expr: ... > 0.05 # Modifier 0.05 selon tolérance -
Latence: Ajuster selon SLA:
expr: ... > 1.0 # Modifier 1.0 selon SLA (ex: 0.5s pour API rapide)
Intégration avec Alertmanager
Pour envoyer les alertes vers Slack/PagerDuty/etc:
- Configurer Alertmanager (voir Alertmanager docs)
- Les labels
severityetcomponentpermettent de router les alertes - Les annotations
runbookpointent vers la documentation
Exemple de configuration Alertmanager:
route:
routes:
- match:
severity: critical
receiver: 'pagerduty'
- match:
severity: warning
receiver: 'slack'