ProblĂšme
Vous avez activé le tracing distribué, mais les données que vous vous attendiez à voir n'apparaissent pas dans UI du tracing distribué de New Relic.
Avant de commencer
Avant de procĂ©der au dĂ©pannage, il peut ĂȘtre utile de :
- Consultez les détails techniques du fonctionnement du tracing distribué.
- Utilisez notre application d'état d'instrumentation pour voir un aperçu de votre instrumentation de trace, y compris les taux d'échantillonnage. Cela peut vous aider à comprendre les spans manquantes et les traces fragmentées. Pour le trouver, allez à  : one.newrelic.com > All capabilities > Apps > Distributed tracing instrumentation status.
Solutions
Voici quelques causes et solutions pour les données de trace manquantes :
ProblĂšmes d'activation ou d'instrumentation
Pour que le tracing distribuĂ© signale les dĂ©tails de tous les nĆuds d'une trace, chaque application doit ĂȘtre monitorĂ©e par un agent New Relic sur lequel le tracing distribuĂ© est activĂ©.
Si le tracing distribué n'est pas activé sur le compte New Relic d'une application, les problÚmes suivants se produiront :
- Sa page d' UI de tracing distribué n'aura pas de données.
- Il ne signalera pas de données aux traces distribuées d'autres comptes.
Lorsque vous activez le tracing distribuĂ© pour les applications et les services que New Relic instrumente automatiquement, vous verrez gĂ©nĂ©ralement des donnĂ©es complĂštes et dĂ©taillĂ©es pour ces nĆuds dans l'UI de tracing distribuĂ©.
Cependant, vous remarquerez peut-ĂȘtre que certains services ou applications sont manquants dans la trace, ou que certaines spans internes que vous vous attendez Ă voir sont manquantes. Si tel est le cas, vous souhaiterez peut-ĂȘtre implĂ©menter instrumentation personnalisĂ©e des applications ou des transactions spĂ©cifiques pour voir plus de dĂ©tails dans la trace. Voici quelques exemples de situations dans lesquelles vous pourriez avoir besoin de procĂ©der ainsi :
- Transactions not automatically instrumentedPour vous assurer que votre application est automatiquement instrumentée, lisez la documentation de compatibilité et des exigences de l'agent New Relic que vous utilisez. Si une application n'est pas automatiquement instrumentée, ou si vous souhaitez ajouter instrumentation d'activité spécifique, consultez instrumentation personnalisée.
- All Go applicationsL'agent Go, contrairement à d'autres agents, nécessite une instrumentation manuelle de votre code. Pour obtenir des instructions, consultez Instrumenter une application Go.
- A service doesn't use HTTPSi un service ne communique pas via HTTP, l'agent New Relic n'enverra pas d'en-tĂȘtes de tracing distribuĂ©. Cela peut ĂȘtre le cas pour certaines applications non Web ou fichiers d'attente de messages. Pour remĂ©dier Ă cela, utilisez les API de tracing distribuĂ© pour instrument lâapplication appelante ou appelĂ©e.
ProblĂšmes avec les spans
Si votre agent ne peut pas écrire de données suffisamment rapidement dans l'observateur de trace, queue_size est une configuration d'agent APM supplémentaire pour limiter le nombre d'intervalles que l'agent conservera. Consultez les exemples suivants pour votre agent :
Méthode de configuration .NET | Exemple |
|---|---|
Fichier de configuration | |
Variable d'environnement | |
Méthode de configuration Python | Exemple |
|---|---|
Fichier de configuration | |
Variable d'environnement | |
Parfois, la propagation d'en-tĂȘte est rĂ©ussie, mais les informations de la span ne sont pas envoyĂ©es Ă New Relic. Par exemple, si OpenTelemetry n'est pas instrumentĂ© avec un exportateur New Relic, les dĂ©tails du span ne parviennent jamais Ă New Relic.
Dans ce diagramme, notez que la propagation de l'en-tĂȘte est rĂ©ussie, mais aucun exportateur n'est configurĂ© dans le service 2 pour envoyer le span Ă New Relic :

Le diagramme suivant montre Ă©galement une propagation d'en-tĂȘte rĂ©ussie, mais il inclut un exportateur dans le service 2 qui envoie les dĂ©tails de la span Ă New Relic (voir API Trace) :

Le tracing distribuĂ© standard pour utilise l'Ă©chantillonnage adaptatif. Cela signifie qu'un pourcentage d'appels Ă un service sera signalĂ© dans le cadre d'une trace distribuĂ©e. Il est possible que des appels spĂ©cifiques Ă votre service n'aient pas Ă©tĂ© sĂ©lectionnĂ©s pour ĂȘtre Ă©chantillonnĂ©s.
Il existe des limites quant au nombre de plages pouvant ĂȘtre collectĂ©es et affichĂ©es. Si une application gĂ©nĂšre un trĂšs grand nombre de spans pour un seul appel, elle peut dĂ©passer la limite de collecte de spans de l'agent APM pour ce cycle de collecte. Cela pourrait entraĂźner des pertes de donnĂ©es et limiter considĂ©rablement le nombre de traces que l'agent peut entiĂšrement Ă©chantillonner et signaler.
Nous n'affichons actuellement que 10 000 spans Ă la fois.
Les intervalles doivent ĂȘtre envoyĂ©s dans les vingt-quatre derniĂšres heures pour ĂȘtre sauvegardĂ©s. Si une plage a un horodatage plus ancien quâun jour, elle sera supprimĂ©e. Cela se produit souvent lorsquâil y a un dĂ©calage dâhorloge (diffĂ©rences de synchronisation) entre les tĂąches systĂšme ou les tĂąches dâarriĂšre-plan de longue durĂ©e.
Important
Toutes les plages envoyĂ©es via le protocole OpenTelemetry (OTLP en abrĂ©gĂ©) de plus de vingt-quatre heures ne seront pas Ă©crites dans NRDB, produisant lâerreur NrIntegrationError suivante :
The span timestamp cannot be older than 24 hours.ProblÚmes avec les détails de la trace
Si vos transactions n'envoient que l'en-tĂȘte propriĂ©taire New Relic, certains intergiciels peuvent ne pas reconnaĂźtre le format et supprimer les informations comme indiquĂ© dans ce diagramme :

Une solution consiste Ă mettre Ă niveau votre agent New Relic vers une version prenant en charge le contexte de trace W3C. Dans le diagramme ci-dessous, l'agent New Relic conforme au W3C transmet l'en-tĂȘte prĂ©cĂ©dent ainsi que deux en-tĂȘtes standardisĂ©s :

Quelques problÚmes potentiels avec les proxys et autres intermédiaires :
Incomplete trace. Certains intermĂ©diaires ne propageront pas automatiquement l' en-tĂȘte de tracing distribuĂ©. Dans ce cas, vous devez configurer ce composant pour permettre Ă lâen-tĂȘte dâĂȘtre transmis de la source Ă la destination. Pour obtenir des instructions, consultez la documentation de ce composant intermĂ©diaire.
Missing intermediary in trace. Si l'intermĂ©diaire est New Relic-monitorer, assurez-vous qu'il propage l'en-tĂȘte
newrelicgénéré ou mis à jour par l'agent New Relic exécuté sur cet intermédiaire. Cela peut se manifester lorsqu'un intermédiaire était auparavant visible dans la trace, mais a disparu aprÚs l'activation du tracing distribué pour une entité en amont (par exemple, une application de monitoring de navigateur).Conseil
Si une entité signale des données trace à un autre systÚme de tracing, vous pouvez utiliser l'ID trace de l'UI de New Relic pour rechercher les spans manquantes dans d'autres systÚmes de tracing.
Si chaque agent d'une chaĂźne prend en charge W3C Trace Context, nous pouvons alors assembler les segments dans une trace complĂšte. Si une partie de la chaĂźne provient d'un agent, tel que Zipkin, qui ne prend pas en charge W3C Trace Context, les spans provenant de cet agent peuvent ne pas ĂȘtre incluses dans la trace.
Si une trace contient des données provenant du moniteur d'applications de plusieurs comptes New Relic et que vos autorisations d'utilisateur ne vous permettent pas d'accéder à ces comptes, certains détails de la span et du service seront masqués dans l'UI.
Par exemple, vous pouvez voir une série d'astérisques (*****) au lieu du nom du service dans votre liste de tracing distribué si vous n'avez pas accÚs au compte lié au service.
La liste trace est gĂ©nĂ©rĂ©e par des index trace, qui sont capturĂ©s dans une fenĂȘtre de vingt minutes Ă compter de la rĂ©ception des premiĂšres traces.
En général, cela est dû à des retards.
Si vous constatez des temps backend inhabituellement courts pour une trace longue, il s'agit probablement d'un problÚme lié à l'horodatage envoyé.
Par exemple, la span racine pourrait renvoyer des microsecondes sous forme de millisecondes. Cela peut également se produire si la span racine est une application de navigateur. Lorsque vous utilisez un client externe comme un navigateur Web, vous pouvez rencontrer plus souvent un décalage d'horloge (différences de synchronisation).
ProblĂšmes avec les applications de navigateur
Les anciennes versions de certains agents sont incompatibles avec le tracing distribuĂ© pour les applications de navigateur. Si l'application de navigateur envoie une requĂȘte AJAX Ă une application APM exĂ©cutant un agent incompatible, l'agent APM peut ne pas enregistrer les donnĂ©es de transaction et de span pour cette requĂȘte.
Si le tracing distribué est activé pour une application de navigateur et que vous ne voyez pas de données de transaction ou de span pour requests APM en aval, examinez les données de navigateur dans les exigences de tracing distribué et confirmez que toutes les applications exécutent des versions prises en charge de l'agent APM.
Si les traces semblent manquer de portĂ©es dâutilisateur final, assurez-vous dâavoir lu et compris les exigences de tracing distribuĂ© du navigateur et les procĂ©dures dâactivation.
Sur la page UI AJAX , il existe des liens vers l'UI de tracing distribué, indépendamment du fait qu'il existe ou non des spans finales d'utilisateur présentes dans cette trace. Pour plus de détails sur les données qui génÚrent des spans, voir Exigences.
Les anciennes versions de certains agents sont incompatibles avec le tracing distribué pour les applications de navigateur. Si les spans APM manquent systématiquement dans la trace qui inclut les applications de navigateur, veuillez vous référer aux données du navigateur dans le tracing distribué des exigences et confirmer que toutes les applications exécutent des versions prises en charge de l'agent APM.
Pour d'autres causes de spans de navigateur orphelines, voir Rapport de span Browser .
Autres problĂšmes
Cause potentielle : pour les applications qui ont plusieurs noms dâapplication, lâattribut entity.name sera associĂ© uniquement au nom dâapplication principal. Pour rechercher par dâautres noms dâapplication, effectuez une recherche Ă lâaide de lâattribut appName .
Les questions concernant lâintĂ©gration avec OpenTelemetry doivent ĂȘtre posĂ©es sur le forum dâassistance.
Autres facteurs affectant lâaccĂšs
Pour en savoir plus sur les facteurs pouvant affecter votre capacité à accéder aux fonctionnalités de New Relic, consultez Facteurs affectant l'accÚs.