Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.4 KiB
Error tracking (GlitchTip)
Les erreurs backend (Symfony) sont remontées vers GlitchTip (instance interne MALIO,
compatible SDK Sentry), org malio, projet sirh-api. Prod uniquement, inerte sans DSN.
Frontend hors périmètre (les erreurs front partent du navigateur RH ; ajout futur possible via un proxy nginx
/ingest).
Contrainte réseau & transport
GlitchTip est sur le réseau interne (bloqué par Sophos). SIRH tourne sur un VPS OVH public. Le container PHP joint GlitchTip via un tunnel Tailscale monté sur le host de prod.
Fichiers concernés
| Fichier | Rôle |
|---|---|
config/packages/sentry.yaml |
conf backend (prod-only, DSN runtime, 4xx ignorés, release = app.version, handler Monolog ERROR+) |
config/bundles.php |
SentryBundle enregistré ['prod' => true] |
config/packages/monolog.yaml |
handler sentry (service) en when@prod |
.env |
bloc documenté SENTRY_DSN (vide → inerte) |
Activation (runbook)
- Tailscale sur le host prod OVH :
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up # ou --authkey tskey-auth-XXXX (headless) tailscale status && tailscale ip -4 - Vérifier l'accès à GlitchTip depuis le host :
tailscale ping <glitchtip-tailnet> curl -sS -o /dev/null -w "%{http_code}\n" http://<glitchtip-IP-tailnet>:<port>/_health/ - Routage container → tailnet : pointer
SENTRY_DSNsur l'IP tailnet de GlitchTip (le container ne résout pas MagicDNS). Repli si non routé : sidecartailscale/tailscalenetwork_mode: service:tailscale.
- Créer le projet GlitchTip
sirh-api(plateformephp-symfony) dans l'orgmalio, récupérer le DSN (Settings → Client Keys). - Injecter le DSN dans l'env_file serveur (pas dans l'image), puis redéployer :
SENTRY_DSN=http://<clé>@100.x.y.z:<port>/<id-sirh-api>docker compose up -d docker compose exec php php bin/console cache:clear --env=prod
CA HTTPS (conditionnel)
Uniquement si le DSN cible l'HTTPS interne logs.malio-dev.fr (cert auto-signé) : baker la CA
racine MALIO dans deploy/docker/Dockerfile.prod (stage production). Recommandé : préférer
l'endpoint HTTP via le tailnet (déjà chiffré par WireGuard) → pas de CA.
Design détaillé : docs/superpowers/specs/2026-06-28-glitchtip-backend-error-tracking-design.md.