RousselTMLEARNING

Observabilité

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

Intégrer OpenTelemetry à Dynatrace : endpoint OTLP et jetons, Dynatrace OTel Collector, traces, métriques (temporalité delta) et logs, cohabitation avec OneAgent, propagation de contexte et bonnes pratiques.

1. Deux chemins #

OneAgent ou OTLP.

Architecture #

OpenTelemetry vers Dynatrace
SituationApproche
Hôtes où OneAgent peut être installéOneAgent : instrumentation automatique, et capture des spans OpenTelemetry déjà présents
Serverless, environnements sans agent, langages non couvertsSDK OpenTelemetry vers OTLP
Plusieurs backends, besoin de transformerOpenTelemetry Collector entre les applications et Dynatrace

2. Envoyer en OTLP #

Endpoint, jeton, temporalité.

Configuration #

SignalEndpointPermission du jeton
Traceshttps://<env>.live.dynatrace.com/api/v2/otlp/v1/tracesopenTelemetryTrace.ingest
Métriques.../api/v2/otlp/v1/metricsmetrics.ingest
Logs.../api/v2/otlp/v1/logslogs.ingest
# collecteur : exportateur vers Dynatrace
exporters:
  otlphttp/dynatrace:
    endpoint: https://<env>.live.dynatrace.com/api/v2/otlp
    headers: { Authorization: "Api-Token ${env:DT_API_TOKEN}" }
processors:
  cumulativetodelta: {}          # Dynatrace attend des métriques en temporalité delta
  batch: {}
service:
  pipelines:
    traces:  { receivers: [otlp], processors: [batch], exporters: [otlphttp/dynatrace] }
    metrics: { receivers: [otlp], processors: [cumulativetodelta, batch], exporters: [otlphttp/dynatrace] }
    logs:    { receivers: [otlp], processors: [batch], exporters: [otlphttp/dynatrace] }
Erreur Courante : Des métriques OTLP envoyées en temporalité cumulative sont rejetées : configurez le SDK en delta (OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta) ou ajoutez le processeur cumulativetodelta dans le collecteur.

3. Bonnes pratiques #

Cohabiter sans doublons.

Règles #

  • Ne pas instrumenter deux fois le même processus (OneAgent et agent OpenTelemetry automatique) : choisir l'un ou l'autre par service.
  • Utiliser la propagation W3C Trace Context, comprise par OneAgent et OpenTelemetry, pour des traces de bout en bout entre services instrumentés différemment.
  • Renseigner service.name, deployment.environment et service.version : Dynatrace les utilise pour nommer et regrouper les services.
  • La distribution Dynatrace OTel Collector contient les composants testés et supportés par Dynatrace.

Articles liés

L'app QuickStart de Dynatrace : obtenir ses premières données en quelques minutes

Découvrir l'app QuickStart : ajouter des données avec Auto Discovery ou une tuile dédiée, lire les Findings, …

L'app Investigations de Dynatrace : mener une enquête sur les données de Grail

Découvrir l'app Investigations : requêtes DQL, extraction avec DPL Architect, enrichissement, arbre de requêt…

Site Reliability Guardian dans Dynatrace

Valider automatiquement une mise en production avec des objectifs de disponibilité, de performance et de capa…

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 !