Voici quelques conseils de dépannage lors de l'utilisation de la trace inter-applications. Notez que cette fonctionnalité n'est pas la même que le tracing distribué, qui est préféré au tracing inter-applications.
Versions et protocoles des agents
Assurez-vous de répondre à ces exigences pour la version, les protocoles, les interfaces ou la bibliothèque de fichiers d'attente de messages de votre agent. Si vous utilisez un protocole qui n'est pas répertorié ici, vous ne verrez pas de connexion entre vos applications.
Agent version | Notes |
---|---|
HTTP, HTTPS | |
HTTP, HTTPs, JMS 1.1, RabbitMQ L'agent Java prend également en charge plusieurs fichiers d'attente de messages de la bibliothèque, y compris ceux qui utilisent l'interface JMS 1.1. | |
HTTP, HTTPS, RabbitMQ | |
Système de mise en file d'attente de messages HTTP, HTTPS et PHP pris en charge | |
HTTP, HTTPS et système de mise en file d'attente de messages Python pris en charge | |
Exigences relatives au fichier de configuration
En général, la fonctionnalité de traçage inter-applications de New Relic est activée par défaut. Les exigences pour modifier votre fichier de configuration varient en fonction de votre agent New Relic :
- Go (non pris en charge)
- Java
- .NET
- Node.js (aucun paramètre de fichier de configuration spécifique n'est requis pour Node.js)
- PHP
- Python
- Ruby
Applications à haut débit
La trace inter-applications s'appuie sur l'événement de transaction pour associer les transactions liées. Si vous avez une application à haut débit, votre agent peut atteindre le nombre maximum d'événements qu'il peut enregistrer en une minute et reviendra à l'échantillonnage des événements. Si les événements d'une transaction sont échantillonnés, vous pouvez voir une trace inter-applications incomplète, incluant parfois uniquement les transactions sur lesquelles vous vous concentrez.
Si votre application dispose d'un débit élevé, certaines traces inter-applications apparaîtront incomplètes, parfois sans liens. Essayez d’afficher une trace de transaction différente. Pour réduire ou éliminer l'échantillonnage, vous pouvez également ajuster le nombre d'événements de transaction stockés dans configuration de votre agent.
High throughput apps | Troubleshooting tips |
---|---|
Java | Dans la section transaction_events , ajustez le paramètre pour |
Ruby | Ajustez le paramètre pour |
Procurations
Si vous vous attendez à voir un lien de trace inter-applications mais qu'il n'apparaît pas systématiquement, il peut y avoir un proxy ou un courtier entre la communication de votre application. Le traçage inter-applications repose sur les en-têtes HTTP et les propriétés JMS transmis d'une application à une autre. Les proxys HTTP et les courtiers de messages suppriment parfois ces en-têtes.
Traitement multithread (Java)
Si une ou plusieurs de vos applications Java utilisent un modèle de programmation asynchrone ou « réactif », l’activité d’une transaction peut s’étendre sur plusieurs threads. New Relic prend en charge le Play framework et Servlet Async mais pas tous les frameworks asynchrones. Pour les frameworks non pris en charge, l’activité sur d’autres threads n’est pas signalée dans le cadre de la transaction. Les appels vers d'autres applications ne seront pas tracés.
Plusieurs comptes
Actuellement, les traces inter-applications ne traversent pas les comptes New Relic. Si vous possédez plusieurs comptes New Relic (y compris des comptes enfants), vous ne verrez que la trace des applications d'un seul compte.
Notre fonctionnalité de tracing distribué traverse les limites des comptes.