• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Tracing distribué pour vos services PHP

Le tracing distribué vous permet de voir l'intégralité du parcours de vos requests à travers un systèmes distribués. L'agent PHP instrumente automatiquement avec le traçage distribué un certain nombre de fonctions PHP natives, ainsi que certains clients HTTP tiers :

Pour l' agent PHP, nous proposons deux types de tracing distribué (pour plus de détails, voir Comment fonctionne le span sampling) :

  • Standard (échantillonnage en début de workflow) : Avant l'arrivée de toute trace, nous déterminons un pourcentage défini de trace à accepter et à analyser. Cela vous donne un point de départ solide pour voir comment le traçage peut vous aider. Il est activé par défaut dans l'agent PHP 9.21.0 et supérieur.

  • Traçage infini (échantillonnage en fin de workflow) : Notre service basé sur le cloud accepte toutes vos traces puis les trie pour trouver les plus importantes. Le traçage infini analyse toutes vos traces et vous offre des options configuration pour échantillonner les traces qui comptent le plus pour vous.

Que vous souhaitiez simplement tester le traçage standard distribué (échantillonnage en début de workflow) ou que vous souhaitiez également mettre en place un traçage infini (échantillonnage en fin de workflow), vous devez commencer par mettre en place le traçage standard.

Traçage standard distribué

Il s’agit de la meilleure approche pour configurer le traçage standard distribué si vous n’avez pas encore installé d’agent APM pour vos services.

Conseil

Lorsque vous installez l'agent PHP de New Relic, le tracing distribué standard est activé par défaut. Si vous préférez le désactiver, consultez notre guide de configuration.

Identifier les services

Déterminez quels services touchent à votre demande afin de pouvoir instrumenter chacun d'eux pour envoyer des données trace à New Relic.

instrumenter chaque service avec un agent APM

Pour chaque service impliqué dans vos transactions, vous effectuerez une installation distincte de l'agent. Si certains de vos services utilisent d’autres langues, répétez simplement les étapes d’installation pour ces langues.

Pour démarrer la routine d'installation, cliquez sur la tuile ci-dessous. Une fois l'installation de chaque agent terminée, revenez ici pour voir des conseils pour visualiser votre trace.

PHP
Start installation

Afficher la trace

Après avoir instrumenté chacun de vos services avec l'agent APM, générez du trafic dans votre application afin que nous puissions capturer une trace. Voici quelques façons d'afficher votre trace dans l'UI:

Pour plus d'aide pour trouver votre trace dans l'UI:

Traçage infini

Le traçage standard distribué pour l'agent APM capture jusqu'à 10 % de votre trace, mais si vous souhaitez que nous analysions toutes vos données et trouvions la trace la plus pertinente, vous pouvez configurer le traçage infini.

Avant de commencer, assurez-vous d’abord de répondre aux exigences.

Terminez la configuration pour le traçage standard distribué

La configuration Infinite Tracing s'appuie sur le traçage standard distribué. Assurez-vous donc d’avoir terminé les étapes ci-dessus, puis continuez avec la configuration de l’observateur de trace.

Configurer l'observateur de trace

L'observateur de trace est un service New Relic basé sur AWSqui collecte et analyse toutes vos traces. Suivez les instructions dans Configurer Trace Observer. Une fois que vous avez terminé, revenez ici avec les informations de votre observateur de trace et passez à l’étape suivante pour configurer l’agent.

Configurer l'agent pour Infinite Tracing

Les paramètres configuration d'Infinite Tracing incluent le traçage standard distribué ainsi que des informations sur l'observateur de trace. Notez que la configuration côté serveur n'est pas disponible pour Infinite Tracing.

Conseil

Si vous avez besoin d'aide avec la configuration du proxy, consultez Assistance proxy.

(Facultatif) Personnaliser le traçage infini

Après avoir ajouté les agent configuration paramètres, vous devriez commencer à voir les données dans l’UI de New Relic. Après avoir passé un certain temps à analyser vos données, vous souhaiterez peut-être ajuster certaines fonctionnalités d'Infinite Tracing :

Définir le niveau de détail de la trace

Le support du tracing distribué dépend du agent traceur de transaction de l' PHP. Lorsque le tracing distribué est activé, une étendue est créée pour chaque segment vu par le traceur de transaction.

Au fur et à mesure que les intervalles sont échantillonnés, l'agent PHP donnera la priorité aux intervalles liés aux appels externes par rapport aux autres intervalles, qui sont ensuite enregistrés par ordre décroissant de leur durée.

Si vous constatez qu'il y a trop d'intervalles sans importance signalés pour les appels de fonction PHP, vous pouvez réduire les détails du traceur de transaction en définissant newrelic.transaction_tracer.detail sur 0. Vous pouvez ensuite utiliser le newrelic.transaction_tracer.custom configuration paramètre ou la newrelic_add_custom_tracer API méthode pour ajouter trace des segments et des étendues pour la fonction ou les méthodes PHP spécifiques que vous souhaitez ajouter à votre trace.

Important

Pour les versions agent PHP 8.4 à 8.7 : lorsque le tracing distribué est activé, ces versions se comportent comme si newrelic.transaction_tracer.detail était défini sur 0 (comme décrit ci-dessus), ce qui fait que les appels de fonction PHP ne génèrent pas d'étendues. Pour obtenir les étendues liées aux appels de fonctions PHP, mettez à jour vers la version 9.0 ou supérieure.

Instrumenter manuellement les applications et les services avec l'API de l'agent PHP

Important

La prise en charge W3C Trace Context a été ajoutée dans la version 9.8. Avec cela, l' API pour l'application instrumentée manuellement a changé par rapport aux fonctions liées aux charges JSON :

newrelic_create_distributed_trace_payload()
newrelic_accept_distributed_trace_payload($payload)

Aux formulaires d'en-tête d'éventail :

newrelic_insert_distributed_trace_headers($outbound_headers)
newrelic_accept_distributed_trace_headers($inbound_headers)

Les fonctions JSON sont désormais considérées comme obsolètes et seront supprimées lors d'une prochaine sortie.

Si vous utilisez une bibliothèque non prise en charge ou si vous disposez d'un composant système distribué non basé sur HTTP (tel qu'un fichier d'attente de messages), vous pouvez utiliser l'agent PHP API pour identifier manuellement les transactions à inclure dans une tracesystème distribuée. Il s’agit d’un processus en deux étapes :

  1. Modifiez votre service ou application pour create ou insert les données de tracing distribué
  2. Modifiez votre service ou application pour accept traceles données distribuées créées par d'autres transactions ou requests.

L'exemple suivant utilise une file d'attente de messages/travaux générique. Bien que les détails réels varient en fonction du type de système que vous essayez d'ajouter à une tracedistribuée, les concepts de base sont les mêmes. De plus, bien que nous ayons utilisé une file d'attente de travaux comme exemple, vous pouvez utiliser ces méthodes avec le composant any systèmes distribués.

Conseil

Lorsque vous create a payload ou insert headers, vous indiquez à New Relic que vous souhaitez que cette requête ou transaction ou requête participe à une tracedistribuée. Lorsque vous les accept, vous liez la demande ou la transaction en cours à sa demande ou transaction parent.

Pour plus d'informations sur l'utilisation instrumentation manuelle pour obtenir plus de détails ou pour voir les connexions entre les services, consultez la documentation sur le tracing distribué d'API.

API d'en-tête

API de charge utile (obsolète)

Programmes PHP en ligne de commande

Les programmes PHP exécutés à partir de la ligne de commande PHP sont toujours échantillonnés par le traceur distribué de l'agent. Selon les programmes que vous exécutez, ces processus peuvent voir une surreprésentation dans votre collection de traces distribuées. Dans ces situations, vous pouvez choisir de désactiver l'instrumentation de ligne de commande en utilisant le paramètre per-directory newrelic.enabled dans votre newrelic.ini files.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.