42b02a8148
Auto Tag Develop / tag (push) Successful in 9s
## Objectif Remonter les erreurs **backend** Symfony vers **GlitchTip** (SDK Sentry), **prod uniquement**, **inerte sans `SENTRY_DSN`**. Transport réseau via **Tailscale** sur le host de prod (infra, hors repo). Frontend hors périmètre. ## Contenu - `sentry/sentry-symfony:^5.10` (+ `symfony.lock` recipe) - `config/bundles.php` → `SentryBundle ['prod' => true]` - `config/packages/sentry.yaml` (nouveau) : DSN runtime, release `%app.version%`, 4xx ignorés, pas de tracing, handler Monolog ERROR+ - `config/packages/monolog.yaml` : handler `sentry` en `when@prod` - `.env` : bloc `SENTRY_DSN` documenté (vide → inerte) - `doc/error-tracking.md` (runbook Tailscale) + section `CLAUDE.md` - Spec + plan sous `docs/superpowers/` ## Vérifications - Prod `cache:clear` OK, service `Sentry\Monolog\Handler` chargé - **267/267 tests verts**, dev/test inchangés (bundle non chargé hors prod) - Aucun changement `frontend/` / `.gitea/` / `deploy/docker/` - Revue multi-agents : **READY TO MERGE** (aucun Critical/Important) ## Activation prod (hors code, cf. `doc/error-tracking.md`) 1. Tailscale sur l'hôte GlitchTip **et** sur le VPS OVH (prod) 2. Créer le projet `sirh-api` dans GlitchTip → récupérer le DSN 3. `SENTRY_DSN=http://<clé>@<IP-tailnet>:<port>/<id>` dans l'env_file serveur + redéploiement 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #37 Co-authored-by: matthieu <matthieu@yuno.malio.fr> Co-committed-by: matthieu <matthieu@yuno.malio.fr>
31 lines
1.3 KiB
YAML
31 lines
1.3 KiB
YAML
# Error tracking → GlitchTip (compatible SDK Sentry).
|
|
# Actif uniquement en prod (bundle enregistré prod-only dans bundles.php).
|
|
# Si SENTRY_DSN est vide/non défini, le SDK est inerte (rien n'est envoyé).
|
|
when@prod:
|
|
parameters:
|
|
env(SENTRY_DSN): ''
|
|
|
|
sentry:
|
|
dsn: '%env(SENTRY_DSN)%'
|
|
# Capture des erreurs fatales PHP via le handler. On DÉSACTIVE le listener
|
|
# kernel pour éviter les doublons avec le handler Monolog (les exceptions du
|
|
# kernel sont déjà logguées par Symfony → remontées via Monolog).
|
|
register_error_listener: false
|
|
register_error_handler: true
|
|
options:
|
|
environment: '%env(APP_ENV)%'
|
|
release: '%app.version%'
|
|
traces_sample_rate: 0.0
|
|
ignore_exceptions:
|
|
- Symfony\Component\HttpKernel\Exception\NotFoundHttpException
|
|
- Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
|
|
- Symfony\Component\Security\Core\Exception\AccessDeniedException
|
|
|
|
# Handler Monolog → Sentry : remonte les logs niveau ERROR+ comme Issues GlitchTip.
|
|
services:
|
|
Sentry\Monolog\Handler:
|
|
arguments:
|
|
$hub: '@Sentry\State\HubInterface'
|
|
$level: !php/const Monolog\Level::Error
|
|
$bubble: true
|