Monitorez vos applications Symfony2 !

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Vous venez de terminer votre application Symfony2 et de la déployer en production. Tous vos tests (unitaires et fonctionnels) sont au vert. Pourtant qu'est-ce qui vous assure que tout fonctionne correctement sur votre serveur ? Afin d'obtenir des informations sur ce qui se passe, il est nécessaire de mettre en place une solution de monitoring au sein de votre projet Symfony2.

Pour cela, je ne peux que vous conseiller d'utiliser le bundle SoclozMonitoringBundle qui vous permettra de monitorer (simplement et rapidement) le code Symfony sur vos serveurs de production afin de :

  • vous envoyer des emails lors du lancement d'exception
  • profiler le code PHP et d'envoyer les informations à statsd (un système de statistique)
  • logguer les informations de profiling
  • ajouter des en-têtes HTTP en cas de bugs

La mise en place (ainsi que la configuration) de ce bundle est extrêmement simple et rapide. Il vous faudra bien sûr, commencer par déclarer la dépendance dans votre fichier composer.json :

{
    "require": {
        ...,
        "socloz/monitoring-bundle": "dev-master"
    }
}

Et activer le bundle dans le kernel de Symfony :

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        // ...

        if ($this->getEnvironment() == 'prod') {
            $bundles[] = new Socloz\MonitoringBundle\SoclozMonitoringBundle();
        }
        
        // ...

        return $bundles;
    }
}

Une fois ces deux opérations effectués, il ne vous reste plus qu'à configurer le bundle. Par exemple, l'exemple ci-dessous enverra un mail à l'adresse monitoring@mon-serveur.com lorsqu'une exception sera levée par l'application sauf pour les exceptions NotFoundHttpException et AccessDeniedHttpException :

socloz_monitoring:
    exceptions:
        enable: true
        ignore: 
            - 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException'
            - 'Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException'
    profiler:
        enable: false
    mailer:
        enable: true
        from: system@mon-serveur.com
        to: monitoring@mon-serveur.com
    statsd:
        enable: false

Un bundle indispensable pour garder le contrôle et améliorer la qualité de vos projets.