Unsure when to use OpenTelemetry with Datadog? Start with Custom Instrumentation with the OpenTelemetry API to learn more.

Overview

There are a few reasons to manually instrument your applications with the OpenTelemetry API:

  • You are not using Datadog supported library instrumentation.
  • You want to extend the ddtrace library’s functionality.
  • You need finer control over instrumenting your applications.

The ddtrace library provides several techniques to help you achieve these goals. The following sections demonstrate how to use the OpenTelemetry API for custom instrumentation to use with Datadog.

Configuration

Pour configurer OpenTelemetry de façon à utiliser le fournisseur de traces Datadog :

  1. Si vous n’avez pas encore lu les instructions relatives à l’auto-instrumentation et à la configuration, commencez par consulter les instructions pour la configuration de Python.

  2. Définissez la variable d’environnement DD_TRACE_OTEL_ENABLED sur true.

Créer des spans personnalisées

Pour créer des spans personnalisées dans un contexte de trace existant :

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

def do_work():
    with tracer.start_as_current_span("operation_name") as span:
        # Effectuez les tâches que vous souhaitez suivre avec la span
        print("Doing work...")
        # Lorsque le bloc 'with' prend fin, la span est automatiquement fermée

Accès aux spans actives

Pour accéder à la span actuellement active, utilisez la fonction get_current_span() :

from opentelemetry import trace

current_span = trace.get_current_span()
# ajouter des informations à 'current_span'

Ajouter des tags de span

Ajouter des attributs à une span pour fournir un contexte ou des métadonnées supplémentaires.

Voici un exemple de la façon d’ajouter des attributs à la span actuelle :

from opentelemetry import trace

current_span = trace.get_current_span()

current_span.set_attribute("attribute_key1", 1)

Pour aller plus loin