Files
Lesstime/config/packages/sentry.yaml
T
matthieu 4e7f339dc1
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 43s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
feat(sentry) : remonte les logs ERROR+ backend vers GlitchTip
Ajout d'un handler Monolog (Sentry\Monolog\Handler) qui envoie les logs
de niveau ERROR et plus a GlitchTip en tant qu'Issues, en prod uniquement.

- monolog.yaml : handler 'sentry' hors fingers_crossed (envoi immediat),
  canaux event/doctrine/deprecation exclus pour limiter le bruit.
- sentry.yaml : enregistrement du service handler au niveau Error +
  register_error_listener passe a false pour eviter le doublon d'exceptions
  (les exceptions kernel sont deja logguees par Symfony => remontees via Monolog).
  register_error_handler reste actif (erreurs fatales PHP).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:34:06 +02:00

36 lines
1.7 KiB
YAML

# Error tracking → GlitchTip (compatible SDK Sentry).
# Actif uniquement en prod (bundle enregistre seulement pour prod dans bundles.php).
# Si SENTRY_DSN est vide/non defini, le SDK est inerte (rien n'est envoye).
when@prod:
parameters:
# Valeur par defaut : DSN vide => Sentry desactive tant qu'il n'est pas fourni.
env(SENTRY_DSN): ''
sentry:
dsn: '%env(SENTRY_DSN)%'
# Capture des erreurs fatales PHP via le handler. On DESACTIVE le listener
# kernel pour eviter les doublons avec le handler Monolog (ci-dessous) : les
# exceptions du kernel sont deja logguees par Symfony => remontees via Monolog.
register_error_listener: false
register_error_handler: true
options:
environment: '%env(APP_ENV)%'
release: '%app.version%'
# Pas d'APM/tracing (DuckDB hors perimetre du ticket #146).
traces_sample_rate: 0.0
# Ne pas remonter les 4xx HTTP comme des erreurs (bruit).
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
# (en plus des erreurs fatales). Les $logger->error(...) metier deviennent des Issues.
# Le filtre ignore_exceptions ci-dessus s'applique aussi a ces evenements.
services:
Sentry\Monolog\Handler:
arguments:
$hub: '@Sentry\State\HubInterface'
$level: !php/const Monolog\Level::Error
$bubble: true