# 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