Onglet Liens de span

Présentation

Les liens de span sont un concept OpenTelemetry et une partie de l’API de traçage OpenTelemetry. Datadog prend en charge les liens de span pour :

Les liens de span corrèlent un ou plusieurs spans ensemble qui sont liés causalement, mais n’ont pas de relation parent-enfant typique. Ces liens peuvent corréler des spans au sein de la même trace ou entre différentes traces.

Les liens de span aident à tracer les opérations dans les systèmes distribués, où les workflows s’écartent souvent des modèles d’exécution linéaires. Ils sont utiles pour tracer le flux des opérations dans les systèmes qui exécutent des requêtes par lots ou traitent des événements de manière asynchrone.

Datadog prend en charge les liens de span vers l’avant et vers l’arrière, permettant aux utilisateurs de visualiser et de naviguer dans les relations de span entre les traces dans les deux sens.

  • Liens vers l’avant : Un span peut être lié à un autre span qui se produit plus tard dans le temps, qu’il appartienne à la même trace ou à une trace différente. Cela vous permet de naviguer des opérations antérieures vers les suivantes entre les traces.
  • Liens vers l’arrière : De même, un span peut être lié à un span qui s’est produit plus tôt dans le temps, soit au sein de la même trace, soit entre différentes traces. Cela vous permet de tracer des opérations ultérieures vers les précédentes.

Cas d’utilisation courants

Les liens de span sont particulièrement applicables dans les scénarios de fan-in, où plusieurs opérations convergent vers un seul span. Le span unique renvoie à plusieurs opérations convergentes.

Exemple :

  • Scatter-Gather et Map-Reduce : Ici, les liens de span tracent et corrèlent plusieurs processus parallèles qui convergent vers un processus combiné unique. Ils connectent les résultats de ces processus parallèles à leur résultat collectif.

  • Agrégation de messages : Dans des systèmes comme Kafka Streams, les liens de span connectent chaque message d’un groupe de messages à leur résultat agrégé, montrant comment les messages individuels contribuent à la sortie finale.

  • Messagerie transactionnelle : Dans les scénarios où plusieurs messages font partie d’une transaction unique, comme dans les files d’attente de messages, les liens de span tracent la relation entre chaque message et le processus transactionnel global.

  • Event Sourcing : Les liens de span dans l’event sourcing suivent la manière dont plusieurs messages de changement contribuent à l’état actuel d’une entité.

La façon dont vous créez des liens de span dépend de la manière dont votre application est instrumentée.

Datadog SDK

Les SDK Python, Node.js, Go et PHP fournissent une API pour ajouter des liens de span. Consultez les exemples pour Python, Node.js, Go ou PHP.

Pour Java, .NET et Ruby, ajoutez des liens de span avec l’API OpenTelemetry. Le SDK Datadog envoie à Datadog les liens de span créés avec l’API OpenTelemetry. Pour utiliser l’API OpenTelemetry avec le SDK Datadog, consultez Instrumentation personnalisée avec l’API OpenTelemetry. Pour l’API des liens de span, consultez la documentation OpenTelemetry pour Java, .NET ou Ruby.

OpenTelemetry SDK

Suivez la documentation d’instrumentation OpenTelemetry pour votre langage. Par exemple, consultez l’API de span pour Java.

Support minimal

Remarque : Cette section documente la prise en charge minimale pour la génération de liens de span avec les bibliothèques clientes Datadog APM (avec l’API OpenTelemetry). Les liens de span générés par le SDK OpenTelemetry sont envoyés à Datadog via l’ingestion OTLP.

L’Agent v7.52.0 ou supérieur est requis pour générer des liens de span en utilisant les SDK Datadog. Le support des liens de span a été introduit dans les versions suivantes :

LangageVersion minimale du SDK
C++/ProxyPas encore supporté
Go1.61.0
Java1.26.0
.NET2.53.0
Node5.3.0
PHP0.97.0
Python2.5.0
Ruby2.0.0

Vous pouvez afficher les liens de span depuis le Trace Explorer dans Datadog.

Pour aller plus loin