L'agent PHP se compose de deux parties :
- Le module d'extension PHP,
newrelic.so
- L'agent daemon,
newrelic-daemon
Le daemon agit comme un proxy entre l' agent PHP et le collecteur New Relic pour réduire le trafic réseau et améliorer les temps de réponse des applications instrumentées. Si le daemon n'est pas en cours d'exécution, aucune donnée n'est signalée à New Relic.
États initiaux ou inactifs du daemon PHP
Lorsque le daemon est dans un état initial ou inactif, two transactions doivent se produire avant qu'il ne commence à générer des rapports.
Dans un état initial :
- Avec la première transaction, le daemon ajoute votre nouvelle application de rapport à sa propre table d'informations d'application.
- Une fois l'application ajoutée, le daemon signale la deuxième transaction à New Relic.
Dans un état idle :
- La première transaction réveille le daemon et rétablit la connexion à New Relic.
- La deuxième transaction transmet des données à New Relic.
Processus de surveillance et de travail
Si vous faites une liste de processus, vous verrez qu'il y a toujours deux processus daemon en cours d'exécution :
$ps -ef | grep newrelic-daemonnewrelic 1368 1 0 00:28 ? 00:00:00 /usr/bin/newrelic-daemon ...newrelic 1370 1368 0 00:28 ? 00:00:00 /usr/bin/newrelic-daemon ...
Avoir deux processus en cours d’exécution est un comportement normal. La première colonne correspond au propriétaire du processus, la deuxième à l'ID du processus (PID) et la troisième à l'ID du processus parent (PPID).
Processus de daemon | Commentaires |
---|---|
Watchdog (premier processus) | Le premier processus, celui appartenant au PID 1, est le processus « watchdog ». Il surveille le deuxième processus, qui est le processus « travailleur ». |
Travailleur (deuxième processus) | Le processus de travail effectue les opérations suivantes :
|
Terminer les processus | Lorsque le daemon est terminé correctement (généralement en exécutant ImportantSi vous devez arrêter manuellement le daemon, arrêtez toujours le watchdog, pas le worker. Si le processus de travail rencontre une erreur fatale et se termine de manière inattendue, le processus de surveillance relancera immédiatement un nouveau processus de travail. Cela permet de garantir que le daemon subit des temps d'arrêt minimum absolus. |
Arrêter le daemon
Les méthodes suivantes peuvent être utilisées pour tuer le daemon :
Processus recommandé : utiliser
/etc/init.d/newrelic-daemon stop
. C'est la méthode préférée pour interagir avec le daemon.Tuez le processus directement avec son ID de processus :
bash$kill 1368Utilisez le fichier PID du chien de garde :
bash$kill `cat /var/run/newrelic-daemon.pid`