Instrumentation manuelle Python
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Instrumentation manuelle Python

SI vous n’utilisez pas une instrumentation de bibliothèque compatible (voir la compatibilité des bibliothèques), vous pouvez choisir d’instrumenter manuellement votre code.

Vous pouvez également choisir d’accroître les fonctionnalités de la bibliothèque ddtrace ou de contrôler plus précisément l’instrumentation de votre application. La bibliothèque propose plusieurs méthodes afin d’y parvenir.

Les exemples suivants utilisent l’objet traceur global, qui peut être importé à l’aide de la commande :

from ddtrace import tracer

ddtrace fournit un décorateur permettant de tracer une méthode spécifique de votre application :

  @tracer.wrap()
  def business_logic():
    """Une méthode pertinente à tracer."""
    # ...
    # ...

Consultez ddtrace.Tracer.wrap() pour obtenir des détails sur l’API pour le décorateur.

Pour tracer un bloc arbitraire de code, vous pouvez utiliser le gestionnaire de contextes ddtrace.Span :

  # tracer une opération pertinente
  with tracer.trace('operations.pertinentes'):
    # ajouter une ou plusieurs opérations pertinentes
    # ...
    # ...

Consultez ddtrace.Tracer() pour obtenir davantage de détails sur l’API.

Si l’utilisation du décorateur et du gestionnaire de contextes ne vous permet pas de répondre à vos besoins en tracing, vous pouvez utiliser l’API manuelle fournie afin d’initialiser des spans et d’y mettre fin comme bon vous semble :

  span = tracer.trace('operations.pertinentes')

  # ajouter une ou plusieurs opérations pertinentes ici

  # REMARQUE : assurez-vous d'appeler span.finish(), sans quoi la trace entière ne sera pas envoyée
  # à Datadog
  span.finish()

Consultez les ressources ci-dessous pour obtenir des détails sur l’API :

Pour aller plus loin