Monitoring et observabilite
Sentry
RaciFlow utilise Sentry pour le suivi des erreurs et la performance (tracing).
Configuration
| Parametre | Valeur |
|---|---|
| Organisation | na-vln |
| Projet backend | raciflow-backend |
| Projet frontend | raciflow-frontend |
| SDK backend | @sentry/node v10 |
| SDK frontend | @sentry/react v10 |
| Taux d’echantillonnage traces | 30% (tracesSampleRate: 0.3) |
Initialisation backend
Le backend initialise Sentry via le fichier server/_core/instrument.ts, charge avant le serveur Express grace a l’option --import de Node.js :
node --import ./dist/instrument.js dist/index.js
Le DSN Sentry est fourni via la variable d’environnement SENTRY_DSN.
Initialisation frontend
Le frontend utilise @sentry/react avec le DSN injecte au build via la variable VITE_SENTRY_DSN (baked dans le bundle Vite).
Audit automatique quotidien
Un trigger Claude Code est programme pour executer un audit Sentry quotidien :
- Horaire : Tous les jours a 8h03
- Action : Revue des erreurs et alertes recentes sur les deux projets Sentry
- Objectif : Detection proactive des problemes avant qu’ils n’impactent les utilisateurs
Healthchecks Docker
Chaque container dispose d’un healthcheck integre :
raci-flow-app
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
raci-flow-postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
raci-flow-redis
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
caddy-proxy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:2019/config/"]
interval: 30s
timeout: 5s
retries: 3
Verification de l’etat des services
# Vue d'ensemble de tous les containers
docker ps --format "table \t\t"
# Etat detaille d'un container specifique
docker inspect --format='' raci-flow-app
# Historique des healthchecks
docker inspect --format='' raci-flow-app | python3 -m json.tool
Logs
# Logs de l'application (temps reel)
docker logs -f raci-flow-app
# Logs PostgreSQL
docker logs -f raci-flow-postgres
# Logs Redis
docker logs -f raci-flow-redis
# Logs Caddy
docker logs -f caddy-proxy
# Derniers logs avec limite
docker logs raci-flow-app --tail 100 --since 1h
Metriques a surveiller
| Metrique | Commande |
|---|---|
| CPU / Memoire containers | docker stats |
| Espace disque volumes | docker system df -v |
| Connexions PostgreSQL actives | docker exec raci-flow-postgres psql -U raci_user -d raci_flow -c "SELECT count(*) FROM pg_stat_activity;" |
| Taille de la base de donnees | docker exec raci-flow-postgres psql -U raci_user -d raci_flow -c "SELECT pg_size_pretty(pg_database_size('raci_flow'));" |
| Memoire Redis | docker exec raci-flow-redis redis-cli INFO memory |