Retour au blog
DevOps

Monitoring applicatif avec Sentry

20 Apr 2024 7 min
Sentry Monitoring PHP

Sentry : ne ratez plus aucune erreur

Sentry est un outil de monitoring d'erreurs qui capture, agrège et alerte sur les exceptions de votre application en temps réel.

Installation Symfony

composer require sentry/sentry-symfony

Configuration

# config/packages/sentry.yaml
sentry:
    dsn: '%env(SENTRY_DSN)%'
    options:
        environment: '%kernel.environment%'
        release: '%env(APP_VERSION)%'
        traces_sample_rate: 0.2
        profiles_sample_rate: 0.1

Contexte utilisateur

use Sentry\State\Scope;

class SentryUserListener
{
    #[AsEventListener(event: KernelEvents::REQUEST)]
    public function onRequest(RequestEvent $event): void
    {
        $user = $this->security->getUser();
        if ($user) {
            \Sentry\configureScope(function (Scope $scope) use ($user): void {
                $scope->setUser([
                    'id' => $user->getId(),
                    'email' => $user->getEmail(),
                ]);
            });
        }
    }
}

Alertes et notifications

  • Configurez des alertes Slack pour les nouvelles erreurs
  • Définissez des seuils de volume d'erreurs
  • Utilisez les traces de performance pour identifier les goulots
  • Intégrez avec votre workflow GitHub pour le suivi des correctifs

Performance Monitoring

// Mesurer une opération spécifique
$transaction = \Sentry\startTransaction(['name' => 'process-order']);
\Sentry\configureScope(fn(Scope $scope) => $scope->setSpan($transaction));

$span = $transaction->startChild(['op' => 'db.query']);
// ... requête base de données
$span->finish();

$transaction->finish();