Instrumentation personnalisée Python avec l'API OpenTelemetry
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 :
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.
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 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
Documentation, liens et articles supplémentaires utiles: