Cette page n'est pas encore disponible en français, sa traduction est en cours. Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.
Essayez « Comprendre OpenTelemetry » dans le Centre d'apprentissage
Apprenez les fondamentaux d'OpenTelemetry, y compris ses capacités et avantages, ses composants clés, et comment OTel et Datadog fonctionnent ensemble.
OpenTelemetry est un framework d’observabilité open source qui fournit aux équipes informatiques des protocoles et des outils standardisés pour collecter et acheminer les données d’observabilité depuis des applications logicielles. OpenTelemetry fournit un format cohérent pour L'instrumentation est le processus consistant à ajouter du code à votre application pour capturer et rapporter des données d'observabilité à Datadog, telles que des traces, des métriques et des logs., générer, rassembler et exporter des données d’observabilité d’application — à savoir des métriques, des logs et des traces — vers des plateformes de surveillance pour l’analyse et l’obtention d’informations exploitables.
Ce guide démontre comment configurer une application OpenTelemetry exemple pour envoyer des données d’observabilité à Datadog en utilisant le SDK OpenTelemetry, le collecteur OpenTelemetry et l’exportateur Datadog. Ce guide vous montre également comment explorer ces données dans l’interface utilisateur Datadog.
Ce guide utilise l'exportateur Datadog et le connecteur Datadog. Pour les nouvelles configurations de Collector, Datadog recommande le pipeline OTLP dans Configurer le Collector OpenTelemetry.
(Facultatif) Utilisez Linux pour envoyer des métriques d’infrastructure.
L’application Calendrier utilise les outils OpenTelemetry pour générer et collecter des métriques, des logs et des traces. Les étapes suivantes expliquent comment intégrer ces données d’observabilité dans Datadog.
Instrumentation de l’application
L’exemple d’application Calendar est déjà partiellement instrumenté :
Accédez au fichier CalendarService.java principal situé à : ./src/main/java/com/otel/service/CalendarService.java.
Le code suivant instrumente getDate() en utilisant les annotations et l’API OpenTelemetry :
L’exportateur Datadog envoie les données collectées par le récepteur OTLP au backend Datadog.
Accédez au fichier otelcol-config.yaml.
Les lignes suivantes configurent l’exportateur Datadog pour envoyer des données d’observabilité à Datadog :
otelcol-config.yaml
exporters:datadog:traces:compute_stats_by_span_kind:truetrace_buffer:500hostname:"otelcol-docker"api:key:${DD_API_KEY}site:datadoghq.comconnectors:datadog/connector:traces:compute_stats_by_span_kind:trueservice:pipelines:metrics:receivers:[otlp, datadog/connector]# <- update this lineexporters:[datadog]traces:exporters:[datadog, datadog/connector]logs:exporters:[datadog]
Définissez exporters.datadog.api.site sur votre site Datadog. Sinon, la valeur par défaut est US1.
Cette configuration permet à l’exportateur Datadog d’envoyer des métriques d’exécution, des traces et des logs à Datadog. Cependant, l’envoi de métriques d’infrastructure nécessite une configuration supplémentaire.
Collecteur OpenTelemetry
Dans cet exemple, configurez votre collector OpenTelemetry pour qu’il envoie des métriques d’infrastructure.
Pour envoyer des métriques d'infrastructure depuis le collecteur OpenTelemetry vers Datadog, vous devez utiliser Linux. Il s'agit d'une limitation du récepteur Docker Stats.
Pour collecter les métriques de conteneur, configurez le récepteur Docker stats dans votre collecteur OpenTelemetry :
Ajoutez un bloc docker_stats à la section receivers de otel-config.yaml :
otelcol-config.yaml
receivers:otlp:protocols:grpc:endpoint:0.0.0.0:4317http:endpoint:0.0.0.0:4318# add the following blockdocker_stats:endpoint:unix:///var/run/docker.sock# default; if this is not the Docker socket path, update to the correct pathmetrics:container.network.io.usage.rx_packets:enabled:truecontainer.network.io.usage.tx_packets:enabled:truecontainer.cpu.usage.system:enabled:truecontainer.memory.rss:enabled:truecontainer.blockio.io_serviced_recursive:enabled:truecontainer.uptime:enabled:truecontainer.memory.hierarchical_memory_limit:enabled:true
Mettez à jour service.pipelines.metrics.receivers pour inclure docker_stats :
otelcol-config.yaml
service:pipelines:metrics:receivers:[otlp, datadog/connector, docker_stats]# <- update this line
Cette configuration permet à l’application Calendar d’envoyer des données sur les conteneurs à Datadog pour que vous puissiez les explorer dans Datadog.
Envoi de données d’observabilité avec OTLP
L’application Calendar utilise l’exportateur de logs OpenTelemetry dans sa configuration Logback pour envoyer des logs avec le composant de traitement OpenTelemetry (OTLP).
Accédez au fichier de configuration XML Logback de l’application Calendar à l’emplacement /src/main/resources/logback.xml.
Les lignes suivantes définissent l’appender OpenTelemetry :
De plus, des variables d’environnement configurent l’environnement OpenTelemetry pour exporter les logs, les métriques et les traces :
Accédez au fichier Docker Compose de l’application Calendar à l’emplacement ./deploys/docker/docker-compose-otelcol.yml.
La configuration OTEL_EXPORTER_OTLP_ENDPOINT=http://otelcol:4317 permet d’envoyer les métriques, les traces et les logs avec OTLP.
Corrélation des données d’observabilité
Le Unified Service Tagging relie les données d’observabilité dans Datadog, ce qui vous permet de naviguer entre les métriques, les traces et les logs à l’aide d’étiquettes cohérentes.
L’application Calendar est déjà configurée avec le Unified Service Tagging :
Accédez au fichier Docker Compose de l’application Calendar à l’emplacement ./deploys/docker/docker-compose-otelcol.yml.
Les lignes suivantes activent la corrélation entre les traces de l’application et les autres données d’observabilité :
Pour commencer à générer et transmettre des données d’observabilité à Datadog, vous devez exécuter l’application Calendar avec le SDK OpenTelemetry :
Exécutez l’application depuis le dossier calendar/ :
docker compose -f deploys/docker/docker-compose-otelcol.yml up
Cette commande crée un conteneur Docker avec le collector OpenTelemetry et le service Calendar.
Pour vérifier que l’application Calendar s’exécute correctement, exécutez la commande suivante depuis une autre fenêtre de terminal :
curl localhost:9090/calendar
Vérifiez que vous recevez une réponse telle que :
{"date":"2022-12-30"}
Exécutez la commande curl plusieurs fois pour vous assurer qu’au moins une trace est exportée vers le backend Datadog.
L'application Calendar utilise le processeur d'échantillonnage probabiliste, de sorte que seuls 30 % des traces envoyées via l'application atteignent le backend cible.
Chaque appel à l’application Calendar entraîne la transmission de métriques, de traces et de logs vers le collector OpenTelemetry, puis vers l’exportateur Datadog, et enfin vers le backend Datadog.
Explorer les données d’observabilité dans Datadog
Utilisez l’interface Datadog pour explorer les données d’observabilité de l’application Calendar.
Remarque : Il peut s’écouler quelques minutes avant que vos données de trace n’apparaissent.
Métriques d’exécution et d’infrastructure
Affichez les métriques de runtime et d’infrastructure pour visualiser, surveiller et mesurer les performances de vos applications, hosts, conteneurs et processus.
Accédez à APM > Catalog.
Survolez le service calendar-otel et sélectionnez Full Page.
Faites défiler jusqu’au panneau inférieur et sélectionnez :
Infrastructure Metrics pour voir les métriques de votre conteneur Docker, telles que l’utilisation du processeur et de la mémoire.
JVM Metrics pour voir les métriques d’exécution, telles que l’utilisation du tas et le nombre de threads.
Logs
Consultez les logs pour surveiller et diagnostiquer les opérations de l’application et du système.
Accédez à Logs.
Si vous avez d’autres logs dans la liste, ajoutez @service.name:calendar-otel au champ Search for pour ne voir que les logs de l’application Calendar.
Sélectionnez un log dans la liste pour voir plus de détails.
Traces
Affichez les traces et les spans pour observer l’état et les performances des requêtes traitées par votre application.
Accédez à APM > Traces.
Recherchez la section Service dans le menu de filtrage et sélectionnez la facette calendar-otel pour afficher toutes les traces calendar-otel :
Pour commencer, cliquez sur une trace pour ouvrir le panneau latéral de trace et trouver plus de détails sur la trace et ses spans. Par exemple, le Flame Graph capture le temps passé dans chaque composant du chemin d’exécution de Calendar :
Remarquez que vous pouvez sélectionner Infrastructure, Metrics ou Logs dans le panneau inférieur pour corréler votre trace avec d’autres données d’observabilité.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: