RousselTMLEARNING

Observabilité

APM Datadog et OpenTelemetry : traces, services et corrélation avec les logs

Instrumenter ses applications pour l'APM Datadog (dd-trace, instrumentation en une étape, OpenTelemetry), exploiter la carte des services et les traces, et relier logs et traces.

1. Instrumenter #

Trois options.

Choisir #

MéthodePrincipeQuand
Single Step InstrumentationL'agent (ou l'opérateur) injecte automatiquement les bibliothèques au démarrage des processusCouvrir rapidement tout un hôte ou cluster
Bibliothèques dd-traceBibliothèque par langage, lancée avec l'applicationContrôle fin, fonctionnalités Datadog complètes
OpenTelemetrySDK OTel, envoi OTLP à l'agent ou au CollectorNeutralité vis-à-vis du fournisseur
pip install ddtrace
DD_SERVICE=checkout DD_ENV=prod DD_VERSION=2.4.1 DD_LOGS_INJECTION=true DD_AGENT_HOST=localhost \
  ddtrace-run gunicorn app:app

OpenTelemetry vers Datadog #

# datadog.yaml : l'agent reçoit l'OTLP
otlp_config:
  receiver:
    protocols:
      grpc: { endpoint: 0.0.0.0:4317 }
      http: { endpoint: 0.0.0.0:4318 }

Les applications instrumentées avec OpenTelemetry envoient à l'agent (ports 4317/4318) ; les attributs deployment.environment, service.name et service.version sont convertis en env, service et version.

2. Exploiter l'APM #

Services, traces, profils.

Vues #

VueUsage
Software Catalog / ServicesSanté de chaque service, propriétaires, documentation
Page d'un serviceDébit, erreurs, latence par ressource ; déploiements (tag version)
Service MapDépendances observées
Trace ExplorerRecherche de spans par attributs, analyses
Continuous ProfilerProfils CPU et mémoire liés aux traces
Error TrackingErreurs regroupées par cause
À savoir : La rétention des traces repose sur l'échantillonnage à l'ingestion et sur des filtres de rétention : toutes les traces ne sont pas conservées 15 jours, seulement celles retenues par les filtres (erreurs, traces lentes, échantillon).

3. Relier logs et traces #

Un clic d'un signal à l'autre.

Corrélation #

Avec DD_LOGS_INJECTION=true, la bibliothèque ajoute dd.trace_id et dd.span_id aux logs ; Datadog affiche les logs d'une trace et la trace d'un log.

2026-10-19 10:00:00 ERROR [dd.service=checkout dd.env=prod dd.version=2.4.1 dd.trace_id=5735239282836592 dd.span_id=1234567] Paiement refusé
Bonne Pratique : Si les logs sont en JSON, les attributs dd.* sont reconnus directement ; sinon, ajoutez-les au format de log et extrayez-les par le pipeline.

Articles liés

Architecture de la plateforme Datadog : sites, organisations, clés et modèle de données

Comprendre l'architecture de Datadog : sources de données (agent, intégrations cloud, SDK, OpenTelemetry), si…

Datadog sur Kubernetes : Operator, Cluster Agent et Autodiscovery

Superviser Kubernetes avec Datadog : Datadog Operator et ressource DatadogAgent, Cluster Agent, Autodiscovery…

Dashboards et notebooks Datadog : widgets, template variables et bonnes pratiques

Concevoir des dashboards Datadog utiles : types de widgets, template variables, groupes, Powerpacks, formules…

Pour aller plus loin