Procédures de Monitoring et Alerting
La solution de cashback nouvelle génération
INTRODUCTION
1.1 Contexte
Le monitoring et l'alerting constituent des piliers essentiels de l'exploitation de la plateforme REWAPP. Dans un écosystème où la détection automatique des transactions bancaires et la génération de QR codes en temps réel sont au cœur de la proposition de valeur, une surveillance proactive est indispensable pour garantir la qualité de service.
Ce document définit les procédures complètes de monitoring et d'alerting pour l'ensemble de l'infrastructure REWAPP, incluant les quatre composantes principales :
- Application Mobile (iOS/Android)
- Site Vitrine (Angular)
- Dashboard Admin (Angular)
- Dashboard Partenaire (Angular + Ionic PWA)
1.2 Portée du Document
Ce document couvre :
- La définition des métriques surveillées (infrastructure, application, business, sécurité)
- La configuration des seuils d'alerte et niveaux de sévérité
- Les canaux de notification et la matrice d'escalade
- Les dashboards de visualisation par audience
- Les procédures de réponse aux incidents (runbooks)
- La maintenance et l'évolution du système de monitoring
OBJECTIFS DU MONITORING
2.1 Objectifs Principaux
Objectifs et Indicateurs Clés
| Objectif | Description | Indicateur Clé |
|---|---|---|
| Disponibilité | Garantir un uptime de 99.9% | < 8.76h de downtime par an |
| Performance | Maintenir des temps de réponse optimaux | Latence API < 200ms (P95) |
| Fiabilité | Détecter et résoudre les incidents rapidement | MTTR < 30 minutes |
| Sécurité | Identifier les tentatives d'intrusion | Détection en < 5 minutes |
| Business | Suivre les KPIs métier en temps réel | Alertes sur anomalies |
2.2 Principes Directeurs
NON-INTRUSIVITÉ
Le monitoring ne doit pas impacter les performances du système surveillé.
STACK DE MONITORING ET OUTILS
3.1 Architecture du Monitoring
L'infrastructure de monitoring REWAPP s'appuie sur une architecture multi-couches combinant CapRover et des outils open-source (Prometheus, Grafana, Loki).
Stack Technique du Monitoring
| Composant | Outil | Usage | Environnement |
|---|---|---|---|
| Métriques Infrastructure | Prometheus + Grafana |
Métriques Docker containers (CPU, RAM, Réseau) | Tous |
| Métriques Application | Prometheus |
Collecte métriques custom applicatives | Production, Staging |
| Visualisation | Grafana |
Dashboards et visualisation temps réel | Production, Staging |
| Logs Centralisés | Loki / CapRover Logs |
Agrégation et recherche de logs | Tous |
| APM / Tracing | Jaeger |
Tracing distribué entre microservices | Production, Staging |
| Error Tracking | Sentry |
Capture et analyse des erreurs frontend/backend | Tous |
| Alerting | Grafana Alerts + PagerDuty |
Gestion des alertes et astreintes | Production |
| Uptime Monitoring | Route 53 Health Checks |
Surveillance disponibilité endpoints | Production |
3.2 Flux de Données
Le flux de collecte et d'alerte suit le chemin suivant :
-
1
Collecte
Les métriques sont collectées par Prometheus (infra et app)
-
2
Agrégation
Les données sont agrégées et stockées avec rétention configurable
-
3
Visualisation
Grafana affiche les dashboards en temps réel
-
4
Analyse
Les seuils sont évalués en continu par Grafana Alerts
-
5
Notification
Les alertes sont routées vers PagerDuty puis distribuées aux équipes
3.3 Configuration des Outils
3.3.1 Prometheus + Grafana
Namespace : REWAPP/Production, REWAPP/Staging
Résolution : 1 minute (standard), 10 secondes (haute résolution critiques)
Rétention logs : 90 jours (production), 30 jours (staging)
Dashboard refresh : 1 minute
3.3.2 Prometheus
Scrape interval : 15 secondes
Retention : 15 jours (données brutes), 2 ans (données agrégées via Thanos)
Port exposition : 9090 (interne uniquement)
3.3.3 Grafana
Version : 10.x
Authentification: SSO via intégration OAuth
Rôles : Viewer (support), Editor (dev), Admin (ops)
Alertes : Activées via Grafana Alerts + PagerDuty
3.3.4 Sentry
DSN : Configuré par environnement (secrets manager)
Sample rate : 100% erreurs, 10% transactions (performance)
Release tracking: Activé (corrélation avec déploiements)
PII : Désactivé (conformité RGPD)
MÉTRIQUES SURVEILLÉES
4.1 Métriques Infrastructure
4.1.1 Compute (Docker Containers)
Métriques Docker Containers
| Métrique | Description | Unité | Fréquence |
|---|---|---|---|
CPUUtilization |
Utilisation CPU des containers | % | 1 min |
MemoryUtilization |
Utilisation mémoire des containers | % | 1 min |
RunningTaskCount |
Nombre de tasks en cours d'exécution | Count | 1 min |
DesiredTaskCount |
Nombre de tasks cibles (auto-scaling) | Count | 1 min |
PendingTaskCount |
Tasks en attente de démarrage | Count | 1 min |
4.1.2 Base de Données (RDS PostgreSQL)
Métriques RDS PostgreSQL
| Métrique | Description | Unité | Fréquence |
|---|---|---|---|
DatabaseConnections |
Connexions actives à la base | Count | 1 min |
CPUUtilization |
Utilisation CPU de l'instance RDS | % | 1 min |
FreeableMemory |
Mémoire disponible | Bytes | 1 min |
FreeStorageSpace |
Espace disque disponible | Bytes | 1 min |
ReadIOPS / WriteIOPS |
Opérations I/O par seconde | Count/s | 1 min |
ReadLatency / WriteLatency |
Latence des opérations I/O | ms | 1 min |
ReplicaLag |
Retard de réplication (Multi-AZ) | Seconds | 1 min |
4.1.3 Cache (ElastiCache Redis)
Métriques ElastiCache Redis
| Métrique | Description | Unité | Fréquence |
|---|---|---|---|
CPUUtilization |
Utilisation CPU du cluster Redis | % | 1 min |
FreeableMemory |
Mémoire disponible | Bytes | 1 min |
CurrConnections |
Connexions actives | Count | 1 min |
CacheHits / CacheMisses |
Ratio de hits/misses du cache | Count | 1 min |
Evictions |
Clés évincées par manque de mémoire | Count | 1 min |
ReplicationLag |
Retard de réplication cluster | Seconds | 1 min |
4.1.4 Load Balancer (ALB)
Métriques ALB
| Métrique | Description | Unité | Fréquence |
|---|---|---|---|
RequestCount |
Nombre total de requêtes | Count | 1 min |
TargetResponseTime |
Temps de réponse moyen | Seconds | 1 min |
HTTPCode_ELB_5XX |
Erreurs 5xx côté load balancer | Count | 1 min |
HTTPCode_Target_5XX |
Erreurs 5xx côté application | Count | 1 min |
HealthyHostCount |
Nombre de targets healthy | Count | 1 min |
UnHealthyHostCount |
Nombre de targets unhealthy | Count | 1 min |
4.2 Métriques Application
4.2.1 API Backend (NestJS)
Métriques API Backend
| Métrique | Description | Unité | Seuil Normal |
|---|---|---|---|
http_request_duration_seconds |
Latence des requêtes API (P50, P95, P99) | Seconds | P95 < 200ms |
http_requests_total |
Nombre total de requêtes par endpoint | Count | Variable |
http_request_errors_total |
Nombre d'erreurs par type (4xx, 5xx) | Count | < 0.5% du total |
active_connections |
Connexions actives simultanées | Count | < 1000 |
queue_jobs_waiting |
Jobs Bull Queue en attente | Count | < 100 |
queue_jobs_failed |
Jobs échoués dans les queues | Count | 0 |
4.2.2 Services Métier
Métriques Services Métier
| Service | Métrique | Description | Seuil |
|---|---|---|---|
| Auth Service | auth_login_attempts |
Tentatives de connexion | < 100/min |
| Auth Service | auth_2fa_validations |
Validations 2FA | Monitoring |
| Transaction Service | transactions_detected |
Transactions détectées via webhooks | Monitoring |
| Transaction Service | transactions_processing_time |
Temps de traitement d'une transaction | < 5s |
| Points Service | points_credited |
Points crédités aux utilisateurs | Monitoring |
| Points Service | qr_codes_generated |
QR codes générés | Monitoring |
| Points Service | qr_codes_scanned |
QR codes scannés avec succès | Monitoring |
| Banking Service | withdrawals_initiated |
Virements SEPA initiés | Monitoring |
| Banking Service | card_linking_success_rate |
Taux de succès liaison carte | > 95% |
4.2.3 QR Code (Règle Métier Critique)
RÈGLE MÉTIER
QR Code valide 60 secondes, usage UNIQUE
Métriques QR Code
| Métrique | Description | Seuil Alerte |
|---|---|---|
qr_generation_latency |
Temps de génération d'un QR code | < 500ms |
qr_validation_latency |
Temps de validation (scan) | < 200ms |
qr_expired_attempts |
Tentatives d'utilisation QR expiré | Monitoring (fraude) |
qr_replay_attempts |
Tentatives de réutilisation QR | > 0 = alerte sécurité |
qr_blocked_points_timeout |
Points bloqués non libérés après timeout | 0 |
4.3 Métriques Business
Métriques Business
| Métrique | Description | Fréquence | Usage |
|---|---|---|---|
daily_active_users |
Utilisateurs actifs par jour | Quotidien | Engagement |
transactions_volume |
Volume total des transactions (euros) | Temps réel | Chiffre d'affaires |
cashback_distributed |
Montant cashback distribué | Temps réel | Coût |
conversion_rate_qr |
Taux d'utilisation QR vs bancaire | Quotidien | Comportement |
merchant_scan_volume |
Volume de scans par commerçant | Temps réel | Activité partenaires |
withdrawal_requests |
Demandes de virement bancaire | Temps réel | Trésorerie |
new_registrations |
Nouvelles inscriptions | Temps réel | Acquisition |
premium_subscriptions |
Abonnements premium actifs | Quotidien | Revenus récurrents |
4.4 Métriques Sécurité
Métriques Sécurité
| Métrique | Description | Seuil Alerte |
|---|---|---|
failed_login_attempts |
Tentatives de connexion échouées | > 10/min (warning), > 50/min (critical) |
brute_force_detected |
Détection attaque brute force | > 0 |
suspicious_ip_activity |
Activité suspecte par IP | Pattern anormal |
api_rate_limit_exceeded |
Dépassement rate limiting | > 100/min |
unauthorized_access_attempts |
Tentatives d'accès non autorisé | > 0 |
sql_injection_attempts |
Tentatives d'injection SQL détectées | > 0 |
xss_attempts |
Tentatives XSS détectées | > 0 |
certificate_expiry_days |
Jours avant expiration certificat SSL | < 30 jours |
CONFIGURATION DES ALERTES
5.1 Niveaux de Sévérité
Niveaux de Sévérité
| Niveau | Description | Temps Réponse | Notification |
|---|---|---|---|
| 🔴 P1 - Critical | Service indisponible, perte de données, sécurité compromise | < 15 min | PagerDuty (téléphone), Slack, Email |
| 🟠 P2 - High | Dégradation majeure des performances, fonctionnalité clé impactée | < 30 min | PagerDuty (push), Slack, Email |
| 🟡 P3 - Medium | Dégradation mineure, impact limité sur les utilisateurs | < 2 heures | Slack, Email |
| 🔵 P4 - Low | Anomalie sans impact utilisateur, maintenance préventive | < 24 heures | Email uniquement |
| ⚪ P5 - Info | Information, tendance à surveiller | Best effort | Dashboard uniquement |
5.2 Seuils d'Alerte par Métrique
5.2.1 Infrastructure
Seuils Infrastructure
| Métrique | Warning (P3) | Critical (P1) | Action Auto |
|---|---|---|---|
CPU Utilization (Docker) |
> 70% pendant 5 min | > 85% pendant 3 min | Auto-scaling (scale-out) |
Memory Utilization (ECS) |
> 75% pendant 5 min | > 90% pendant 3 min | Auto-scaling (scale-out) |
Database Connections |
> 70% du max | > 85% du max | Alerte + investigation |
RDS CPU Utilization |
> 70% pendant 5 min | > 85% pendant 3 min | Alerte + scale-up planifié |
RDS Free Storage |
< 20% | < 10% | Extension automatique |
Redis Memory |
> 70% | > 85% | Alerte + éviction cache |
Redis Evictions |
> 100/min | > 500/min | Alerte + scale-up |
5.2.2 Application
Seuils Application
| Métrique | Warning (P3) | Critical (P1-P2) | Actions |
|---|---|---|---|
API Latency P95 |
> 300ms | > 500ms | Investigation performance |
Error Rate (5xx) |
> 0.5% | > 1% | Rollback si déploiement récent |
Error Rate (4xx) |
> 5% | > 10% | Investigation + blocage IP si abuse |
Healthy Hosts |
< 75% | < 50% | Auto-scaling + investigation |
Queue Jobs Waiting |
> 100 | > 500 | Scale workers |
Queue Jobs Failed |
> 10/h | > 50/h | Investigation + retry manuel |
5.3 Canaux de Notification
Configuration des Canaux
| Canal | Outil | Usage | Configuration |
|---|---|---|---|
| Téléphone | PagerDuty | Alertes P1 uniquement | Rotation astreinte 24/7 |
| Push Mobile | PagerDuty App | Alertes P1-P2 | Équipe de garde |
| Slack | #rewapp-alerts | Alertes P1-P3 | Intégration CloudWatch/PagerDuty |
| SendGrid | Toutes alertes | Distribution list par équipe | |
| Dashboard | Grafana | Toutes alertes | Affichage temps réel |
5.3.2 Canaux Slack
#rewapp-alerts-critical: Alertes P1-P2 (équipe ops + management)#rewapp-alerts-warning: Alertes P3-P4 (équipe technique)#rewapp-security: Alertes sécurité uniquement#rewapp-business: Alertes KPIs business
5.3.3 Groupes de Distribution Email
ops-critical@rewapp.fr: Alertes P1 (équipe ops + CTO)tech-alerts@rewapp.fr: Alertes P2-P3 (équipe technique)security-alerts@rewapp.fr: Alertes sécuritébusiness-alerts@rewapp.fr: Alertes business (COO + équipe produit)
5.4 Matrice d'Escalade
Escalade par Niveau
| Temps Écoulé | P1 Critical | P2 High | P3 Medium |
|---|---|---|---|
| 0 min | Ingénieur de garde (téléphone) | Ingénieur de garde (push) | Slack notification |
| 15 min | + Tech Lead | Ingénieur de garde (téléphone) | - |
| 30 min | + CTO | + Tech Lead | Email équipe |
| 1 heure | + CEO (si impact business) | + CTO | - |
| 2 heures | War room | + Management | Assignation ticket |
5.4.2 Planning d'Astreinte
Rotation : Hebdomadaire (lundi 9h00 → lundi suivant 9h00)
Équipe : 4 ingénieurs en rotation
Backup : Un backup désigné par semaine
Outils : PagerDuty, accès VPN, laptop de garde
Horaires :
• Heures ouvrées (9h-18h) : Équipe technique complète disponible
• Soir (18h-22h) : Ingénieur de garde (réponse P1 < 15 min)
• Nuit (22h-9h) : Ingénieur de garde (réponse P1 < 30 min)
• Week-end : Ingénieur de garde (réponse P1 < 30 min)
DASHBOARDS DE VISUALISATION
6.1 Dashboard Opérationnel (Ops)
CONFIGURATION
Audience : Équipe opérations, ingénieurs de garde
Rafraîchissement : 30 secondes
URL : https://grafana.rewapp.internal/d/ops-overview
Panneaux Dashboard Ops
| Panneau | Type | Métriques Affichées |
|---|---|---|
| Health Status | Stat | Statut global (UP/DEGRADED/DOWN) avec couleur |
| Service Map | Node Graph | État de chaque microservice |
| API Latency | Time Series | P50, P95, P99 latency sur 24h |
| Error Rate | Gauge | Taux d'erreur actuel avec seuils |
| Infrastructure | Multi-stat | CPU, RAM, Disk pour ECS, RDS, Redis |
| Active Alerts | Alert List | Liste des alertes actives triées par sévérité |
| Recent Deployments | Table | Derniers déploiements avec statut |
6.2 Dashboard Technique (Dev)
CONFIGURATION
Audience : Équipe développement, QA
Rafraîchissement : 1 minute
URL : https://grafana.rewapp.internal/d/dev-overview
Panneaux Dashboard Dev
| Panneau | Type | Métriques Affichées |
|---|---|---|
| API Endpoints Performance | Heatmap | Latence par endpoint |
| Error Distribution | Pie Chart | Répartition erreurs par type/service |
| Database Performance | Time Series | Connexions, latence queries, slow queries |
| Queue Status | Bar Gauge | Jobs waiting/processing/failed par queue |
| Sentry Issues | Table | Dernières erreurs avec stack traces |
| Cache Performance | Time Series | Hit ratio, evictions, memory usage |
| Dependency Health | Status Map | État des intégrations tierces |
6.3 Dashboard Business
CONFIGURATION
Audience : Direction, équipe produit, équipe commerciale
Rafraîchissement : 5 minutes
URL : https://grafana.rewapp.internal/d/business-kpis
Panneaux Dashboard Business
| Panneau | Type | Métriques Affichées |
|---|---|---|
| Daily Active Users | Stat + Trend | DAU avec évolution vs J-1, J-7 |
| Transactions Today | Counter | Volume transactions du jour (euros) |
| Cashback Distributed | Counter | Montant cashback distribué (euros) |
| QR vs Bancaire | Pie Chart | Répartition utilisation cashback |
| Top Merchants | Bar Chart | Top 10 commerçants par volume |
| New Registrations | Time Series | Inscriptions par jour sur 30 jours |
| Conversion Funnel | Funnel | Inscription → Card Linking → 1ère transaction |
| Revenue Metrics | Multi-stat | MRR, commission totale, premium subscribers |
6.4 Dashboard Sécurité
CONFIGURATION
Audience : Équipe sécurité, DPO, compliance
Rafraîchissement : 1 minute
URL : https://grafana.rewapp.internal/d/security
Panneaux Dashboard Sécurité
| Panneau | Type | Métriques Affichées |
|---|---|---|
| Security Score | Gauge | Score global de sécurité (0-100) |
| Failed Logins | Time Series | Tentatives échouées par minute |
| Geographic Anomalies | World Map | Connexions suspectes par géolocalisation |
| Rate Limit Violations | Bar Chart | Violations par IP / User |
| WAF Blocked Requests | Counter | Requêtes bloquées par AWS WAF |
| Certificate Status | Status Panel | État des certificats SSL (expiration) |
| Audit Log | Table | Dernières actions administratives sensibles |
PROCÉDURES DE RÉPONSE AUX ALERTES
7.1 Procédure Générale
7.1.1 Workflow de Réponse
-
1
Acknowledge
Confirmer la prise en charge de l'alerte dans PagerDuty (< 5 min pour P1)
-
2
Assess
Évaluer l'impact et confirmer la sévérité
-
3
Communicate
Informer les parties prenantes via Slack
-
4
Investigate
Identifier la cause racine via logs et dashboards
-
5
Mitigate
Appliquer une correction temporaire si nécessaire
-
6
Resolve
Appliquer la correction définitive
-
7
Document
Créer un Post-Mortem pour les incidents P1-P2
7.1.2 Template de Communication
🚨 INCIDENT P[X] - [Titre court]
Impact : [Description de l'impact utilisateur]
Début : [Timestamp]
Statut : Investigating / Identified / Monitoring / Resolved
Ingénieur : @[nom]
Dernière mise à jour : [Timestamp] - [Description action]
7.2 Runbooks par Type d'Incident
7.2.1 Runbook : API Latency Élevée
SÉVÉRITÉ : P2 (P1 si > 2 secondes)
Symptômes : Alerte "API Latency P95 > 500ms"
Étapes de diagnostic :
1. Vérifier le dashboard Grafana "API Performance"
→ Identifier les endpoints les plus lents
2. Vérifier la charge infrastructure
→ CPU/RAM des containers ECS
→ Connexions et latence RDS
→ Hit ratio Redis
3. Vérifier les logs CloudWatch
→ Filtrer sur slow queries (> 1s)
→ Rechercher erreurs timeout
4. Vérifier les déploiements récents
→ Corrélation avec un déploiement ?
Actions de remédiation :
[Si CPU élevé]
→ Déclencher scale-out ECS manuellement
→ aws ecs update-service --cluster rewapp-prod --service api --desired-count [N+2]
[Si DB saturée]
→ Vérifier les slow queries :
SELECT * FROM pg_stat_activity WHERE state = 'active';
→ Tuer les queries bloquantes :
SELECT pg_terminate_backend([pid]);
[Si Redis saturé]
→ Vérifier les clés volumineuses : redis-cli --bigkeys
→ Flush cache non critique : redis-cli FLUSHDB
[Si déploiement récent]
→ Rollback : ./scripts/rollback.sh [previous-version]
7.2.2 Runbook : Error Rate Élevé
SÉVÉRITÉ : P1 (si > 1%), P2 (si > 0.5%)
Symptômes : Alerte "Error Rate > 1%"
Étapes de diagnostic :
1. Vérifier Sentry pour les nouvelles erreurs
→ Identifier le type d'erreur dominant
→ Vérifier la stack trace
2. Vérifier le dashboard "Error Distribution"
→ Quel service est impacté ?
→ Quelle route API ?
3. Vérifier les logs du service concerné
→ aws logs filter-log-events --log-group-name /rewapp/prod/[service]
4. Vérifier les dépendances externes
→ Status page Budget Insight, SendGrid, FCM
Actions de remédiation :
[Si erreur code récent]
→ Rollback immédiat vers version stable
[Si dépendance externe down]
→ Activer le circuit breaker si pas automatique
→ Communiquer aux utilisateurs si impact visible
[Si saturation ressources]
→ Voir runbook "API Latency Élevée"
7.2.3 Runbook : Database Connection Exhaustion
SÉVÉRITÉ : P1
Symptômes : Alerte "Database Connections > 85%"
# 1. Vérifier le nombre de connexions actives
SELECT count(*) FROM pg_stat_activity;
# 2. Identifier les connexions idle
SELECT * FROM pg_stat_activity WHERE state = 'idle';
# 3. Vérifier PgBouncer
pgbouncer-cli show pools
# REMÉDIATION :
# 1. Tuer les connexions idle anciennes (> 5 min)
SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE state = 'idle' AND query_start < now() - interval '5 minutes';
# 2. Augmenter temporairement max_connections si nécessaire
# → Modification via Parameter Group RDS (nécessite reboot)
# 3. Scale-out les services pour répartir la charge
7.2.4 Runbook : QR Code System Failure
SÉVÉRITÉ : P1 (CRITIQUE POUR LE BUSINESS)
Symptômes : Alerte "QR Code Failures > 10%" ou "qr_replay_attempts > 0"
RÈGLE MÉTIER CRITIQUE
QR Code valide 60 secondes, usage UNIQUE
# DIAGNOSTIC :
# 1. Vérifier le service Points Service
aws logs filter-log-events --log-group-name /rewapp/prod/points-service
# 2. Vérifier Redis (stockage QR temporaire)
# → Connexion OK ? Mémoire disponible ?
# → TTL des clés QR respecté ?
# 3. Vérifier les métriques QR
# → qr_generation_latency, qr_validation_latency
# → qr_blocked_points_timeout (points non libérés)
# REMÉDIATION :
[Si Redis down]
→ Failover vers replica : aws elasticache failover-replica
→ Communiquer indisponibilité temporaire du paiement QR
[Si latence génération > 500ms]
→ Scale-out Points Service
→ Vérifier charge Redis
[Si replay attempts détectés]
→ ALERTE SÉCURITÉ : Potentielle fraude
→ Bloquer l'utilisateur concerné
→ Investigation forensique
[Si points bloqués non libérés]
→ Script de libération manuelle :
→ ./scripts/release-blocked-points.sh --force
7.2.5 Runbook : Security Incident
SÉVÉRITÉ : P1
Symptômes : Alerte sécurité (brute force, injection, accès non autorisé)
Étapes immédiates :
1. Ne pas paniquer - Suivre la procédure
2. Bloquer la source de l'attaque
→ IP : aws waf update-ip-set --ip-set-id [id] --addresses [IP]/32
→ Utilisateur : ./scripts/disable-user.sh [userId]
3. Préserver les preuves
→ Exporter les logs pertinents
→ Screenshot des dashboards
4. Escalader
→ Informer immédiatement : CTO, DPO, équipe sécurité
Communication :
- Interne uniquement dans un premier temps (canal privé)
- Évaluer l'obligation de notification CNIL (72h si données personnelles)
- Communication utilisateurs si nécessaire
Post-incident :
- Post-mortem obligatoire sous 48h
- Mise à jour des règles WAF si nécessaire
- Revue des accès et permissions
MAINTENANCE ET ÉVOLUTION DU MONITORING
8.1 Maintenance Régulière
Planning de Maintenance
| Tâche | Fréquence | Responsable | Description |
|---|---|---|---|
| Revue des alertes | Hebdomadaire | Tech Lead | Analyser les alertes, ajuster les seuils |
| Nettoyage logs | Mensuel | Ops | Vérifier la rétention, archiver si nécessaire |
| Mise à jour dashboards | Mensuel | Ops | Ajouter/supprimer métriques selon évolution |
| Test des runbooks | Trimestriel | Équipe | Exercice de simulation d'incident (game day) |
| Revue des accès | Trimestriel | Sécurité | Audit des accès Grafana/CloudWatch |
| Upgrade outils | Semestriel | Ops | Mise à jour Grafana, Prometheus, agents |
8.2 Évolutions Prévues
8.2.1 Court Terme (Q1 2026)
- Intégration Datadog pour APM avancé
- Alertes prédictives basées sur machine learning
- Dashboard mobile pour équipe de garde
8.2.2 Moyen Terme (2026)
- Automatisation des remédiations (self-healing)
- Chaos Engineering (tests de résilience automatisés)
- Observabilité end-to-end incluant partenaires bancaires
8.3 Indicateurs de Qualité du Monitoring
KPIs du Monitoring
| Indicateur | Objectif | Mesure |
|---|---|---|
| MTTD (Mean Time To Detect) | < 2 minutes | Temps entre incident et première alerte |
| MTTA (Mean Time To Acknowledge) | < 5 minutes (P1) | Temps entre alerte et prise en charge |
| MTTR (Mean Time To Resolve) | < 30 minutes (P1) | Temps entre alerte et résolution |
| False Positive Rate | < 5% | Alertes non pertinentes / Total alertes |
| Alert Fatigue Score | < 10 alertes/jour | Nombre moyen d'alertes quotidiennes |
CONCLUSION
9.1 Récapitulatif
Le système de monitoring et alerting de REWAPP a été conçu pour garantir :
9.2 Points Clés à Retenir
- Stack CloudWatch + Prometheus + Grafana pour une observabilité complète
- 4 niveaux de sévérité (P1-P4) avec temps de réponse définis
- Escalade automatique via PagerDuty avec rotation d'astreinte 24/7
- Runbooks documentés pour les incidents les plus fréquents
- Maintenance régulière pour éviter l'alert fatigue et maintenir la pertinence