Ce document est un suivi de l'IA chez les développeurs ou mainteneurs de framework PHP. Il suggère des moyens d'étendre votre framework en ajoutant la prise en charge de New Relic.
L' agent PHP prend en charge le framework en déterminant où dans le code framework la transaction Web peut être nommée de manière appropriée, et en nommant la transaction Web en fonction des informations trouvées dans la classe, l'appel de fonction, etc. Cette solution est fragile et sujette aux modifications du code par les développeurs. New Relic encourage les développeurs framework à effectuer les quelques appels nécessaires pour améliorer l'expérience utilisateur prête à l'emploi avec le framework qu'ils maintiennent.
Aidez votre utilisateur
New Relic peut identifier le nom Web de la transaction et où insérer les en-têtes et pieds de page JavaScript pour de New Relic. Cependant, pour améliorer l'expérience finale de l'utilisateur, augmenter les performances et faciliter la maintenance du code, les développeurs framework devraient effectuer ce travail eux-mêmes.
Il appartient aux développeurs des différents frameworks de décider s'ils souhaitent aider leur utilisateur en ajoutant un support natif pour New Relic. Dans presque tous les cas, l'ajout de support pour New Relic implique l'insertion de trois appels d'API quelque part dans le code framework .
Terminologie
Afin de comprendre comment ajouter au mieux la prise en charge de New Relic, il est utile de comprendre certains des points clés d'interaction.
Term | Definition |
---|---|
Web transactions | Web transactions sont requests d'actifs (ou des hits d'utilisateurs) sur votre site. Avec le framework, cela est souvent géré par un mécanisme de répartition MVC. |
Metrics | Metrics sont des entités nommées qui rapportent des informations de synchronisation. New Relic utilise ces métriques pour générer des graphiques et des pages, telles que la page APM Summary . Par exemple, l'instrument New Relic appelle MySQL et génère des métriques appelées Les Métriques contiennent uniquement des données de synchronisation. |
Transaction traces | À chaque période de récolte, New Relic enregistre le Web de transactions le plus lent qui tombe en dessous d'un seuil défini par l'utilisateur. C'est un transaction trace. Il a plus de détails que de simples métriques. Si cette option est activée, elle inclura un graphique d'appel détaillé indiquant exactement quelles fonctions ont été appelées et combien de temps elles ont pris. Pour les instructions de requête lente, il obscurcit toutes les données de l'appel. |
Transactions de nom
La façon dont vous nommez votre site Web de transaction affectera la qualité de l'expérience utilisateur.
Important
N'utilisez pas de crochets [suffix]
à la fin du nom de votre transaction. New Relic supprime automatiquement les crochets du nom. Utilisez plutôt des parenthèses (suffix)
ou d’autres symboles si nécessaire.
Examples:
Si vous disposez d'un framework de type blog, vous nommeriez les différentes transactions en fonction de l'activité de l'utilisateur : display
, edit
, login
, etc.
Si vous utilisez une architecture MVC, la convention de dénomination appropriée est controller/action
. N'incluez aucune donnée spécifique à la demande dans le nom de la transaction. Par exemple, l’utilisation de l’URL de requête réelle entraîne des problèmes de regroupement métrique.
Platform | Transaction naming example |
---|---|
Drupal 7 | L'envoi se fait en |
CakePHP 1.3 | CakePHP a une classe |
Au point où vous souhaitez acheminer le code vers un contrôleur et une action spécifiques (si vous utilisez MVC) ou vers une action (si vous n'utilisez pas MVC), insérez un code similaire à celui-ci :
Controller and action (lors de l'utilisation de MVC) :
if (extension_loaded ('newrelic')) { newrelic_name_transaction ($controller . '/' . $action);}
Action only (sans utiliser MVC) :
if (extension_loaded ('newrelic')) { newrelic_name_transaction ($action);}
Insérer l'en-tête et le pied de page JavaScript
Pour le timing de chargement de la page (parfois appelé monitoring des utilisateurs réels ou RUM), insérez l'en-tête et le pied de page JavaScript. Cela vous permet de monitorer l'expérience finale de l'utilisateur sur la page générée.
- Recommandation : si votre framework dispose d'une fonction centrale qui génère tous les en-têtes et pieds de page, installez le code JavaScript ici.
- Pour les frameworks basés sur des modèles, insérez-les dans vos modèles d'en-tête et de pied de page.