1. Instrumenter #
Trois options.
Choisir #
| Méthode | Principe | Quand |
|---|---|---|
| Single Step Instrumentation | L'agent (ou l'opérateur) injecte automatiquement les bibliothèques au démarrage des processus | Couvrir rapidement tout un hôte ou cluster |
| Bibliothèques dd-trace | Bibliothèque par langage, lancée avec l'application | Contrôle fin, fonctionnalités Datadog complètes |
| OpenTelemetry | SDK OTel, envoi OTLP à l'agent ou au Collector | Neutralité 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:appOpenTelemetry 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 #
| Vue | Usage |
|---|---|
| Software Catalog / Services | Santé de chaque service, propriétaires, documentation |
| Page d'un service | Débit, erreurs, latence par ressource ; déploiements (tag version) |
| Service Map | Dépendances observées |
| Trace Explorer | Recherche de spans par attributs, analyses |
| Continuous Profiler | Profils CPU et mémoire liés aux traces |
| Error Tracking | Erreurs 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.