OpenTelemetry fournit un écosystème de tracing riche, avec une API pour l'enregistrement de la télémétrie trace , un SDK pour l'exportation de données de portée et une propagation du contexte pour le tracing au-delà des limites de l'application.
Cette page décrit comment New Relic gère les étendues OpenTelemetry qu'il reçoit via le point de terminaison New Relic OTLP. Pour envoyer OpenTelemetry une trace à New Relic, vous devez configurer votre trace source pour exporter les données vers le New Relic OpenTelemetry Collector via le point de terminaison OTLP. Voir les pages suivantes :
- Pour connaître les exigences configuration du point de terminaison, consultez New Relic OTLP point de terminaison.
- Pour obtenir des instructions sur la configuration des services avec OpenTelemetry, consultez Monitoring APM OpenTelemetry.
Modélisation de la portée OTLP
New Relic mappe les étendues OTLP au type de données Span . Le tableau ci-dessous décrit comment les champs des définitions de message du protocole de trace sont interprétés :
Champ proto OTLP | Champ |
|---|---|
| Chaque valeur clé est un attribut sur le |
|
|
|
|
| Chaque valeur clé est un attribut sur le |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Chaque valeur clé est un attribut sur le |
|
|
| Chaque événement est enregistré comme un |
| Stocké sous le nom |
| Stocké sous le nom |
| Chaque valeur clé est stockée comme attribut sur |
| Stocké sous le nom |
|
|
|
|
|
|
Notes de bas de tableau
[1] En cas de conflit dans les champs d'attribut de ressource, d'attribut de portée, d'attribut d'étendue et d'étendue de niveau supérieur, l'ordre de priorité (du plus élevé au plus bas) est le suivant : les champs de niveau supérieur Span.* > Span.attributes > ScopeSpans.InstrumentationScope.attributes > ResourceSpans.Resource.attributes.
Consultez les types d'attributs OTLP pour plus de détails sur les types d'attributs pris en charge par le point de terminaison OTLP de New Relic et les limites d'attributs OTLP pour plus de détails sur la validation effectuée sur l'attribut.
Liens de span
New Relic prend en charge les liens de span OpenTelemetry, qui vous permettent de créer des relations de causalité entre les spans qui n'ont pas de connexion parent-enfant directe. Les liens de span sont essentiels pour comprendre les traces distribuées qui sont divisées sur des limites asynchrones telles que les files d'attente de messages, les flux d'événements et les systèmes de traitement par lots.
Quand utiliser les liens de span
Utilisez les liens de span dans les scénarios suivants :
- Message queue producers and consumers: Lier un span consommateur au span producteur lors du traitement des messages provenant de files d'attente telles que AWS SQS, RabbitMQ ou Kafka.
- Fan-in patterns: Lier plusieurs traces de producteurs à une seule trace de consommateur qui agrège leurs sorties.
- Batch processing: Lier les spans qui traitent les messages par lots à leurs traces d'origine individuelles.
- Long-running workflows: Connecter les spans à travers les étapes du flux de travail qui dépassent les limites de durée de trace normales.
Implémentation des liens de span
Pour implémenter les liens de span dans votre instrumentation OpenTelemetry, vous devez :
- Extraire le contexte de trace du message ou de l'événement entrant
- Créer un lien de span lors du démarrage d'un nouveau span dans le consommateur
- S'assurer que le contexte de trace est propagé via votre infrastructure de messagerie
Les exemples suivants montrent comment implémenter les liens de span dans différents langages :
Meilleures pratiques pour les liens de span
Lors de l'implémentation des liens de span, suivez ces meilleures pratiques :
Always propagate trace context: Assurez-vous que le contexte de trace W3C (en-têtes
traceparentettracestate) est inclus dans les en-têtes ou les métadonnées des messages.Validate span context: Vérifiez toujours si le contexte de span extrait est valide avant de créer un lien de span. Les contextes non valides ne doivent pas créer de liens.
Use appropriate span kinds: Définissez
PRODUCERkind pour les spans de publication de messages etCONSUMERkind pour les spans de traitement de messages.Add messaging attributes: Incluez des conventions sémantiques pour les systèmes de messagerie (tels que
messaging.system,messaging.destination,messaging.operation) pour fournir un contexte.Consider sampling: Les deux traces liées doivent être échantillonnées pour apparaître dans New Relic. : Ajustez les stratégies d'échantillonnage pour les flux de travail critiques qui utilisent des liens de span.
Handle batch processing carefully: Lors du traitement des messages par lots, créez des liens de span individuels pour chaque message afin de maintenir la traçabilité.
Affichage des liens de span dans New Relic
Une fois que vous avez implémenté les liens de span dans votre instrumentation, vous pouvez les afficher et les parcourir dans l'interface utilisateur de New Relic :
- Accédez à la page des détails de la trace pour une trace
- Recherchez le badge des liens de span dans la barre de filtre indiquant le nombre de spans avec des liens
- Sélectionnez un span avec des liens pour afficher l'onglet Span links dans le volet des détails du span
- Cliquez sur les traces liées pour naviguer entre les traces associées
Pour obtenir des informations détaillées sur l'utilisation des liens de span dans l'interface utilisateur, consultez Comprendre les liens de span.