Tracer des applications Python
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Tracer des applications Python

Installation et démarrage

Si vous avez déjà un compte Datadog, vous trouverez des instructions détaillées dans nos guides intégrés à l’application pour les configurations basées sur un host et les configurations basées sur un conteneur.

Sinon, pour commencer le tracing d’applications écrites en Python, vous devez d’abord installer et configurer l’Agent Datadog. Pour obtenir davantage d’informations, consultez la documentation relative au tracing d’applications Docker ou au tracing d’applications Kubernetes.

Installez ensuite la bibliothèque de tracing Datadog, ddtrace, avec pip :

pip install ddtrace

Pour instrumenter votre application Python, utilisez alors la commande ddtrace-run incluse. Pour l’utiliser, ajoutez ddtrace-run en préfixe à la commande de votre point d’entrée Python.

Par exemple, si votre application est lancée avec python app.py, exécutez la commande suivante :

ddtrace-run python app.py

Pour découvrir des options d’utilisation, de configuration et de contrôle plus avancées, consultez la documentation relative à l’API de Datadog.

Configuration

Lorsque vous utilisez ddtrace-run, les variables d’environnement suivantes sont disponibles :

Variable d’environnementValeur par défautDescription
DD_ENVDéfinit l’environnement d’une application, par ex. prod, pre-prod ou staging. Découvrez comment configurer votre environnement.
DD_SERVICELe nom de service à utiliser pour cette application. La valeur est transmise lorsque vous configurez un middleware pour les intégrations de framework Web (par ex. Pylons, Flask ou Django). Si vous n’utilisez pas d’intégration Web pour le tracing, nous vous conseillons de définir le nom de service dans le code.
DD_VERSIONDéfinit la version de votre application, p. ex. 1.2.3, 6c44da20 ou 2020.02.13.
DD_TAGSLa liste des tags par défaut à ajouter à chaque span, profil et métrique runtime, p. ex. layer:api,team:intake.

Nous vous conseillons d’utiliser DD_ENV, DD_SERVICE et DD_VERSION pour définir les paramètres env, service et version pour vos services. Consultez la documentation sur le Tagging de service unifié pour en savoir plus sur la configuration de ces variables d’environnement.

Instrumentation

Variable d’environnementValeur par défautDescription
DATADOG_TRACE_ENABLEDtrueActive l’instrumentation des frameworks web et des bibliothèques. Lorsqu’elle est définie sur false, le code de l’application ne génère aucune trace.
DATADOG_TRACE_DEBUGfalseActive les logs de debugging dans le traceur. Remarque : cette fonctionnalité n’est pas disponible avec Django.
DATADOG_PATCH_MODULESRemplace les modules patchés pour l’exécution de ce cette application. Le format doit être le suivant : DATADOG_PATCH_MODULES=module:patch,module:patch....
DD_AGENT_HOSTlocalhostRemplace l’adresse du host de l’Agent de trace utilisée par le traceur par défaut pour l’envoi des traces.
DATADOG_TRACE_AGENT_PORT8126Remplace le port utilisé par le traceur par défaut pour l’envoi des traces.
DD_TRACE_AGENT_URLL’URL de l’Agent de trace auquel le traceur transmet des données. Lorsque ce paramètre est défini, il est utilisé à la place du hostname et du port. Prend en charge les sockets de domaine Unix grâce au paramètre apm_config.receiver_socket de votre fichier datadog.yaml ou à la variable d’environnement DD_APM_RECEIVER_SOCKET.
DATADOG_PRIORITY_SAMPLINGtrueActive l’échantillonnage prioritaire.
DD_LOGS_INJECTIONfalseActive la mise en relation des logs et des traces injectées.
DD_TRACE_ANALYTICS_ENABLEDfalseActive App Analytics pour toutes les intégrations Web.
DD_INTEGRATION_ANALYTICS_ENABLEDfalseActive App Analytics pour une intégration spécifique. Exemple : DD_BOTO_ANALYTICS_ENABLED=true .

Modifier le hostname de l’Agent

Configurez vos traceurs d’application de façon à ce qu’ils envoie les traces vers un hostname d’Agent personnalisé. Le module de tracing Python recherche automatiquement les variables ENV DD_AGENT_HOST et DD_TRACE_AGENT_PORT et s’initialise avec celles-ci.

Vous pouvez également définir le hostname et le port dans le code :

import os
from ddtrace import tracer

tracer.configure(
    hostname="custom-hostname",
    port="1234",
)

Pour aller plus loin