Important
Depuis la version 8.0.0 de l'agent Ruby , le tracing distribué est activé par défaut. Le tracing distribué améliore le tracing inter-applications et est recommandé pour les grands systèmes distribués.
Le tracing inter-applications est obsolète au profit du tracing distribué et sera supprimé dans une future version de l'agent. Si vous devez continuer à utiliser le tracing inter-applications, par exemple pour un framework middleware non standard, consultez les informationsconfiguration dans ce document.
Exigences
Suivez ces exigences pour utiliser le traçage inter-applications avec l’agent Ruby :
- Assurez-vous que les requests instrumentées utilisent une bibliothèque client HTTP prise en charge.
- Installez ou mettez à jour vers la dernière version de l'agent Ruby (version 3.5.5.38 ou supérieure).
- Suivez les exigences pour l’installation du middleware.
Installation du middleware
Le traçage inter-applications fonctionne avec Rack et nécessite donc Rails 2.3 ou supérieur, ou un autre framework compatible.
- Si vous utilisez Rails, l'agent Ruby installera automatiquement le middleware.
- Si vous utilisez un autre framework basé sur Rack, ajoutez manuellement le middleware
NewRelic::Rack::AgentHooks
à votre stack.
Configuration
Le traçage inter-applications peut être contrôlé par un indicateur de configuration. À partir de la version 8.0.0 de l'agent Ruby, la valeur par défaut de cross_application_tracer.enabled
est false
, même lorsqu'elle n'est pas spécifiée. Pour activer le traçage inter-applications, vous devez définir cet indicateur sur true
et définir distributed_tracing.enabled
sur false
.
cross_application_tracer: enabled: truedistributed_tracing: enabled: false
Pour les versions inférieures à 8.0.0, les inter-applications peuvent être configurées à l'aide du paramètre suivant.
cross_application_tracer: enabled: true
mesures trace inter-applications
La mesure external (de l'application appelante) sera toujours plus grande que la mesure internal (de l'application appelée). La mesure externe est collectée par l'instrumentation de la bibliothèque client HTTP de New Relic (comme Net::HTTP). La mesure interne est prise par l'instrumentation de New Relic du framework Web (comme Rails) dans l'application appelée.
Voici quelques-uns des principaux composants inclus dans la mesure externe qui ne sont pas inclus dans la mesure interne :
Certains de ces composants sont plus faciles à contrôler que d’autres. Par exemple, pour capturer les timings des éléments Receiving host ci-dessus, assurez-vous que monitoringde la file d'attente des demandes est configurée sur l'application réceptrice.
Obtenir la distribution du tracing
Depuis la version 8.0.0 de l'agent Ruby , le tracing distribué est activé par défaut. Le tracing distribué est une amélioration du tracing inter-applications et est recommandé pour les grands systèmes distribués.