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.

Configuración

Para configurar OpenTelemetry para utilizar el proveedor de traza de Datadog:

  1. Si aún no has leído las instrucciones de autoinstrumentación y configuración, comienza por las Instrucciones de configuración de Python.

  2. Establece la variable de entorno DD_TRACE_OTEL_ENABLED en true.

Creación de tramos personalizados

Para crear tramos personalizados dentro de un contexto de traza existente:

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

def do_work():
    with tracer.start_as_current_span("operation_name") as span:
        # Realiza el trabajo que deseas rastrear con el tramo
        print("Doing work...")
        # Cuando el bloque 'with' finaliza, el tramo se cierra automáticamente

Acceso a tramos activos

Para acceder al tramo activo en ese momento, utiliza la función get_current_span():

from opentelemetry import trace

current_span = trace.get_current_span()
# mejora 'current_span' con información

Añadir etiquetas al tramo

Añada atributos a un tramo para proporcionar contexto o metadatos adicionales.

Aquí encontrarás un ejemplo de cómo añadir atributos al tramo actual:

from opentelemetry import trace

current_span = trace.get_current_span()

current_span.set_attribute("attribute_key1", 1)

Lectura adicional