Symfony, New Relic et Docker: les secrets d’une mise en place réussie

Symfony est un framework PHP très populaire, qui offre une grande flexibilité pour créer des applications web robustes et performantes. Lorsqu’on utilise Symfony, il est souvent nécessaire de surveiller les performances de l’application en production, afin de détecter les éventuels problèmes de performance qui pourraient ralentir l’application et affecter l’expérience utilisateur. Pour ce faire, il est courant d’utiliser des outils de surveillance tels que New Relic. Dans cet article, nous allons voir les étapes nécessaires pour configurer New Relic dans une application Symfony sous Docker.

1. Installer Symfony

Avant tout, tu as besoin d’avoir initialisé ton projet Symfony avec Docker. Si nécessaire, tu peux te référer à cet article sur l’utilisation de WSL & Docker au besoin.
Pour initialiser ton projet, tu peux suivre les instructions sur le site officiel de Symfony. Tu y trouveras également toutes les étapes pour mettre en place un environnement Docker complet, où PHP, le serveur Web, la base de données, etc. sont tous dans Docker.

2. Mettre en place NewRelic

Bien sûr, tu auras créé un compte sur le site officiel de NewRelic avant de commencer.

Si tu souhaites utiliser NewRelic pour surveiller tes applications en installant l’agent approprié, tu devras ajouter quelques lignes de code dans ton fichier DockerFile afin que tous les outils nécessaires soient installés lors de la construction de l’image de ton projet.

Ensuite, tu devras ajouter un service NewRelic dans ton fichier docker-compose comme suit:

services:
    newrelic:
        container_name: todolist-newrelic
        image: newrelic/php-daemon

Dans le fichier Dockerfile, il faudra rajouter ces lignes :

RUN apt update \
    && apt install -y wget gnupg\

RUN echo 'deb http://apt.newrelic.com/debian/ newrelic non-free' | tee /etc/apt/sources.list.d/newrelic.list \
    && wget -O- https://download.newrelic.com/548C16BF.gpg | apt-key add - \
    && apt-get update \
    && apt-get install -y newrelic-php5 \
    && newrelic-install install

RUN echo 'extension=newrelic.so' > /usr/local/etc/php/conf.d/newrelic.ini

ENV NEW_RELIC_LICENSE_KEY '%env(resolve:NEW_RELIC_LICENSE_KEY)%'
ENV NEW_RELIC_APP_NAME NOM_DE_TON_PROJET
ENV NEW_RELIC_LOG /var/log/newrelic/php_agent.log
ENV NEW_RELIC_LOG_LEVEL info

RUN echo "newrelic.license=$NEW_RELIC_LICENSE_KEY" >> /usr/local/etc/php/conf.d/newrelic.ini \
    && echo "newrelic.appname=$NEW_RELIC_APP_NAME" >> /usr/local/etc/php/conf.d/newrelic.ini \
    && echo "newrelic.logfile=$NEW_RELIC_LOG" >> /usr/local/etc/php/conf.d/newrelic.ini \
    && echo "newrelic.loglevel=$NEW_RELIC_LOG_LEVEL" >> /usr/local/etc/php/conf.d/newrelic.ini

Brièvement, pour expliquer le code, la première ligne met à jour le gestionnaire de paquets apt et installe deux paquets: wget et gnupg.

La deuxième série de commandes ajoute une source de paquets pour New Relic, ajoute la clé GPG de New Relic pour vérifier l’authenticité des paquets et installe le paquet newrelic-php5.

La troisième série de commandes configure l’extension PHP New Relic en écrivant un fichier de configuration newrelic.ini avec le numéro de licence, le nom de l’application, le chemin du fichier journal et le niveau de journalisation. Les variables d’environnement sont également définies pour la licence, le nom de l’application, le chemin du fichier journal et le niveau de journalisation.

Enfin, les dernières commandes écrivent les variables d’environnement définies dans le fichier de configuration newrelic.ini. Ces variables sont nécessaires pour que l’extension New Relic fonctionne correctement.

N’oublie pas de remplacer NOM_DE_TON_PROJET par le véritable nom de ton projet. Tu as également remarqué que ‘%env(resolve:NEW_RELIC_LICENSE_KEY)%’ nécessite que tu ajoutes ce code à ton fichier .env.local, en fonction de ton environnement.

NEW_RELIC_LICENSE_KEY="REMPLACE PAR TA CLE DE LICENSE NEW RELIC"

Une fois que tu as exécuté la commande « docker-compose up -d », tu peux accéder à ton tableau de bord New Relic pour vérifier que l’agent a été intégré avec succès et qu’il envoie les données de performance de ton application Symfony. Tu devrais voir le nom de ton application ainsi que les statistiques de performance dans l’interface utilisateur de New Relic.

Il est important de se rappeler que chaque fois que tu modifies le fichier Dockerfile, tu dois reconstruire et redémarrer les conteneurs pour que les modifications soient prises en compte.

Hésite pas à partager ton expérience en commentaire, partager cet article.

Good dev!

chevron_left
chevron_right

Participer à la discussion

comment 1 commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire
Nom
E-mail
Site