Sentry est intégré au backend Symfony pour le monitoring des erreurs et exceptions en production. Le bundle sentry/sentry-symfony capture automatiquement les erreurs PHP, les exceptions non gérées, et permet de suivre les releases pour faciliter le debugging.
Sentry est activé uniquement en environnement de production via le bundle Symfony. Il capture automatiquement :
Certaines exceptions courantes sont ignorées pour éviter le bruit dans les rapports (404, 400, etc.).
Le bundle Sentry est enregistré dans config/bundles.php et activé uniquement en production :
Sentry\SentryBundle\SentryBundle::class => ['prod' => true],
La configuration se trouve dans config/packages/sentry.yaml :
when@prod:
sentry:
dsn: '%env(SENTRY_DSN)%'
tracing:
enabled: false
messenger:
capture_soft_fails: false
options:
release: '%env(SENTRY_RELEASE)%'
environment: '%env(SENTRY_ENVIRONMENT)%'
ignore_exceptions:
- 'Symfony\Component\Console\Exception\CommandNotFoundException'
- 'Symfony\Component\ErrorHandler\Error\FatalError'
- 'Symfony\Component\Debug\Exception\FatalErrorException'
- 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException'
- 'Symfony\Component\HttpKernel\Exception\BadRequestHttpException'
- 'Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException'
- 'Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException'
- 'Symfony\Component\Security\Core\Exception\AccessDeniedException'
- 'Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException'
- 'ApiPlatform\Validator\Exception\ValidationException'
Les variables suivantes doivent être configurées en production :
SENTRY_DSN : DSN de votre projet SentrySENTRY_RELEASE : Version/release de l'application (ex: 1.0.0 ou hash de commit)SENTRY_ENVIRONMENT : Environnement (production, staging, etc.)Les exceptions suivantes sont configurées pour être ignorées car elles sont attendues dans le fonctionnement normal de l'application :
Le tracing distribué est désactivé (tracing.enabled: false) pour réduire la charge et les coûts. Il peut être activé si nécessaire pour le monitoring de performance.
Les échecs "soft" des messages Messenger ne sont pas capturés (capture_soft_fails: false). Seuls les échecs définitifs seront envoyés à Sentry.
Une intégration avec Monolog est disponible mais commentée dans la configuration. Pour l'activer :
monolog:
handlers:
sentry:
type: sentry
level: !php/const Monolog\Logger::ERROR
hub_id: Sentry\State\HubInterface
fill_extra_context: true
process_psr_3_messages: false
Cela permet d'envoyer les logs Monolog vers Sentry en plus des exceptions automatiques.
En développement, le bundle Sentry n'est pas chargé, donc aucune erreur n'est envoyée à Sentry. Cela évite de polluer les rapports avec des erreurs de développement.