La fonctionnalité de services externes vous permet d’examiner de près l’activité en amont et en aval d’un service unique. Ces services externes en amont ou en aval peuvent être vos propres services que vous avez instrumentés, ou ils peuvent faire référence à des services que vous appelez simplement au cours d'une transaction. Les services externes n'incluent pas certains composants backend tels que MemCache et la base de données elle-même.
La fonctionnalité des services externes n’est pas réservée uniquement à l’agent utilisateur New Relic APM . Il inclut également OpenTelemetry et utilise la puissance du tracing distribué pour vous donner des informations détaillées sur l'activité du service. La fonctionnalité classique de services externes est toujours disponible derrière une bascule UI , mais nous vous recommandons d'essayer toute la puissance des services externes étendus.
Cette fonctionnalité fournit une combinaison de cartes et de graphiques pour vous aider à :
- Trouver les sources de latence et d'erreurs
- Évaluer l'impact de la latence sur les appelants en amont
- Examiner les performances au niveau des transactions
- Trouvez des traces impliquant les transactions qui vous intéressent
Pour utiliser la fonctionnalité de services externes, vous avez besoin d'un compte New Relic avec un agent APM installé avec le tracing distribué activé. Si vous n'en avez pas encore, créez un compte gratuit.

L'épaisseur des lignes représente le débit de votre service vers les services en amont ou en aval. Lorsque vous sélectionnez un service spécifique, vous verrez les différents points de terminaison effectuant des appels entre les deux services.
Voici une courte vidéo (1:30 minutes) montrant comment utiliser le dashboard des services externes pour suivre toutes les dépendances et services dont dépend votre application.
Quand utiliseriez-vous des services externes ?
La fonctionnalité de services externes est un outil que vous pouvez utiliser seul pour régler ou dépanner un service spécifique. Vous pouvez également l'utiliser comme point de départ pour un dépannage supplémentaire avec le tracing distribué.
Disons que vous êtes un développeur responsable du service A :
- Vous recevez une alerte indiquant que le temps de réponse moyen a augmenté de manière anormale.
- Vous regardez votre service et constatez que le temps passé en appels vers d’autres services a augmenté au moment de l’alerte.
- Vous explorez les services externes et constatez que le temps total d'appel d'un service en particulier, le service B, a augmenté juste avant le déclenchement de l'alerte.
- Vous sélectionnez le service B sur la carte et observez les performances des transactions individuelles du service A qui appellent des transactions du service B. Vous remarquez qu'une transaction particulière sur le service A est plus lente que la normale et qu'elle appelle une transaction sur le service B.
Ensuite, vous pouvez utiliser le tracing distribué pour approfondir le sujet :
- Plongez dans le tracing distribué et voyez dans la trace que les appels de cette transaction font quelque chose d'étrange.
- Passez à cette transaction sur le service B et constatez qu'elle est devenue lente après un incident.
Relation aux services externes classiques
Bien que vous puissiez toujours accéder aux services externes classiques en utilisant la bascule de UI , l'UI principale des services externes est renseignée par les données du tracing distribué. Il fournit toujours des données de transaction similaires aux services externes classiques, mais voici quelques éléments clés que vous devez savoir sur les services externes étendus :
- Dependency: Pour utiliser la fonctionnalité de services externes, vous devez activer le tracing distribué sur les services qui s'appellent les uns les autres.
- Compatibility: Le tracing distribué n'est pas rétrocompatible avec le tracing inter-applications, donc si vous comptez actuellement sur des services externes classiques, veuillez noter que vous n'aurez de visibilité que sur les appels entre services utilisant le même protocole.
- Data: Contrairement aux services externes classiques, le détail au niveau des transactions du tracing distribué est basé sur l'échantillonnage plutôt que sur des métriques. Ces données échantillonnées sont liées au tracing distribué, ce qui peut vous donner des informations plus détaillées sur ce qui motive les performances des transactions.
Conseil
La fonctionnalité de services externes ne prend pas en charge les données et .
Quelle est la prochaine étape ?
Si vous êtes prêt à activer cette fonctionnalité, consultez nos étapes de configuration.