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

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !