File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # Runbook — AppDown
2+
3+ ## Alerte
4+ ** Nom :** AppDown
5+ ** Sévérité :** Critical
6+ ** Condition :** ` up{job="fleetops-api"} == 0 ` pendant 30 secondes
7+
8+ ## Symptômes
9+ - L'app FleetOps ne répond plus
10+ - ` /health ` retourne une erreur de connexion
11+ - Les utilisateurs ne peuvent plus accéder à l'API
12+
13+ ## Diagnostic
14+
15+ ### 1. Vérifier l'état des conteneurs
16+ ``` bash
17+ docker compose ps
18+ docker compose logs app --tail=50
19+ ```
20+
21+ ### 2. Vérifier la connexion à la DB
22+ ``` bash
23+ curl http://localhost:8000/ready
24+ ```
25+
26+ ### 3. Vérifier les ressources système
27+ ``` bash
28+ docker stats
29+ df -h
30+ free -m
31+ ```
32+
33+ ## Remédiation
34+
35+ ### Si le conteneur est arrêté
36+ ``` bash
37+ docker compose up -d app
38+ ```
39+
40+ ### Si la DB est inaccessible
41+ ``` bash
42+ docker compose restart db
43+ docker compose restart app
44+ ```
45+
46+ ### Si manque de mémoire
47+ ``` bash
48+ docker compose down
49+ docker system prune -f
50+ docker compose up -d
51+ ```
52+
53+ ## Escalade
54+ Si le problème persiste après 15 minutes → contacter l'équipe infrastructure.
Original file line number Diff line number Diff line change 1+ # Runbook — HighErrorRate
2+
3+ ## Alerte
4+ ** Nom :** HighErrorRate
5+ ** Sévérité :** Critical
6+ ** Condition :** plus de 5% des requêtes retournent une erreur 5xx depuis 1 minute
7+
8+ ## Symptômes
9+ - Les utilisateurs reçoivent des erreurs lors de leurs requêtes API
10+ - Le dashboard Grafana "Taux d'erreurs 5xx" dépasse 5%
11+ - Les logs de l'app montrent des exceptions ou stack traces
12+
13+ ## Diagnostic
14+
15+ ### 1. Regarder les logs de l'app
16+ ``` bash
17+ docker compose logs app --tail=100
18+ ```
19+
20+ ### 2. Vérifier la connexion à la DB
21+ ``` bash
22+ curl http://localhost:8000/ready
23+ ```
24+
25+ ### 3. Vérifier l'état des conteneurs
26+ ``` bash
27+ docker compose ps
28+ ```
29+
30+ ## Remédiation
31+
32+ ### Si la DB est inaccessible
33+ ``` bash
34+ docker compose restart db
35+ docker compose restart app
36+ ```
37+
38+ ### Si bug applicatif
39+ Identifier l'endpoint qui échoue dans les logs, puis rollback :
40+ ``` bash
41+ docker compose down
42+ docker compose up -d
43+ ```
44+
45+ ### Si surcharge
46+ ``` bash
47+ docker compose restart app
48+ ```
49+
50+ ## Escalade
51+ Si le problème persiste après 15 minutes → contacter l'équipe infrastructure et ouvrir un incident.
Original file line number Diff line number Diff line change 1+ # Runbook — HighLatency
2+
3+ ## Alerte
4+ ** Nom :** HighLatency
5+ ** Sévérité :** Warning
6+ ** Condition :** latence p95 > 300ms depuis 2 minutes
7+
8+ ## Symptômes
9+ - Les utilisateurs remarquent des temps de réponse lents
10+ - Le dashboard Grafana "Latence p95" dépasse 300ms
11+ - Les logs montrent des requêtes longues
12+
13+ ## Diagnostic
14+
15+ ### 1. Vérifier les logs de l'app
16+ ``` bash
17+ docker compose logs app --tail=100
18+ ```
19+
20+ ### 2. Vérifier la charge des conteneurs
21+ ``` bash
22+ docker stats
23+ ```
24+
25+ ### 3. Vérifier la connexion à la DB
26+ ``` bash
27+ curl http://localhost:8000/ready
28+ ```
29+
30+ ## Remédiation
31+
32+ ### Si la DB est lente
33+ ``` bash
34+ docker compose restart db
35+ docker compose restart app
36+ ```
37+
38+ ### Si surcharge CPU/mémoire
39+ ``` bash
40+ docker compose restart app
41+ ```
42+
43+ ## Escalade
44+ Si le problème persiste après 15 minutes → contacter l'équipe infrastructure.
Original file line number Diff line number Diff line change 1+ # Runbook — HighRequestRate
2+
3+ ## Alerte
4+ ** Nom :** HighRequestRate
5+ ** Sévérité :** Warning
6+ ** Condition :** plus de 10 requêtes/seconde depuis 1 minute
7+
8+ ## Symptômes
9+ - Trafic inhabituellement élevé sur l'API
10+ - Dashboard Grafana "Requests per second" dépasse 10 RPS
11+ - Possible ralentissement de l'app
12+
13+ ## Diagnostic
14+
15+ ### 1. Identifier l'endpoint le plus appelé
16+ ``` bash
17+ docker compose logs app --tail=200 | grep " GET\|POST\|DELETE"
18+ ```
19+
20+ ### 2. Vérifier si c'est légitime ou une attaque
21+ ``` bash
22+ docker compose logs app --tail=200 | grep " IP"
23+ ```
24+
25+ ### 3. Vérifier la charge système
26+ ``` bash
27+ docker stats
28+ ```
29+
30+ ## Remédiation
31+
32+ ### Si trafic légitime — surveiller
33+ ``` bash
34+ docker stats
35+ ```
36+
37+ ### Si attaque — bloquer au niveau réseau
38+ Contacter l'équipe infrastructure pour bloquer l'IP source.
39+
40+ ### Si l'app commence à ralentir
41+ ``` bash
42+ docker compose restart app
43+ ```
44+
45+ ## Escalade
46+ Si le trafic continue d'augmenter et l'app ralentit → contacter l'équipe infrastructure immédiatement.
Original file line number Diff line number Diff line change 1+ # Runbook — NoTraffic
2+
3+ ## Alerte
4+ ** Nom :** NoTraffic
5+ ** Sévérité :** Warning
6+ ** Condition :** aucune requête reçue depuis 5 minutes
7+
8+ ## Symptômes
9+ - Aucune activité sur le dashboard Grafana
10+ - Prometheus ne collecte plus de métriques HTTP
11+ - Possible indisponibilité silencieuse
12+
13+ ## Diagnostic
14+
15+ ### 1. Vérifier que l'app tourne
16+ ``` bash
17+ docker compose ps
18+ curl http://localhost:8000/health
19+ ```
20+
21+ ### 2. Vérifier que Prometheus scrape bien l'app
22+ ``` bash
23+ curl http://localhost:9090/targets
24+ ```
25+
26+ ### 3. Vérifier les logs
27+ ``` bash
28+ docker compose logs app --tail=50
29+ ```
30+
31+ ## Remédiation
32+
33+ ### Si l'app est down
34+ ``` bash
35+ docker compose up -d app
36+ ```
37+
38+ ### Si Prometheus ne scrape plus
39+ ``` bash
40+ docker compose restart prometheus
41+ ```
42+
43+ ### Si tout tourne mais pas de trafic
44+ C'est peut-être normal (nuit, weekend). Vérifier avec l'équipe produit.
45+
46+ ## Escalade
47+ Si l'app est down et ne redémarre pas → contacter l'équipe infrastructure.
You can’t perform that action at this time.
0 commit comments