Compatibilité entre Datadog et OpenTelemetry
Présentation
Datadog propose plusieurs options de configuration pour répondre à divers cas d’utilisation, allant des implémentations OpenTelemetry (OTel) complètes aux configurations hybrides utilisant à la fois des composants OpenTelemetry et Datadog. Cette page couvre la compatibilité entre différentes configurations ainsi que les produits et fonctionnalités Datadog pris en charge, vous aidant à choisir la configuration la mieux adaptée à vos besoins.
Configurations
Datadog prend en charge plusieurs configurations pour l’utilisation d’OpenTelemetry. La principale différence entre ces configurations réside dans le choix du SDK (OpenTelemetry ou Datadog) et du collecteur utilisé pour traiter et transférer les données de télémétrie.
Compatibilité des fonctionnalités
Le tableau suivant présente la compatibilité des fonctionnalités selon les différentes configurations :
Prise en charge de l’API
Les SDK Datadog prennent en charge les API de traces, de métriques et de logs OpenTelemetry dans divers langages. Trouvez votre langage dans le tableau ci-dessous pour accéder aux guides de configuration et aux détails de prise en charge.
Plus de détails
Agent Observability
Les traces OpenTelemetry qui possèdent des attributs d’IA générative sont automatiquement converties en Agent Observability traces. Pour désactiver cette conversion, consultez Disabling Agent Observability conversion.
Métriques runtime
- Configurations des SDK Datadog : émettez des Métriques Runtime via DogStatsD (port UDP 8125). Assurez-vous que DogStatsD est activé dans votre Datadog Agent.
- Configurations du SDK OpenTelemetry : Suivent la spécification Métriques Runtime OpenTelemetry et sont généralement envoyées via OTLP (port 4317/4318).
Real User Monitoring (RUM)
Pour activer la fonctionnalité RUM complète, vous devez injecter les en-têtes pris en charge afin de corréler RUM et les traces.
Cloud Network Monitoring (CNM)
La surveillance au niveau du span ou du endpoint n’est pas prise en charge.
Pour plus d’informations, consultez Cloud Network Monitoring Setup.
Source Code Integration
Pour les langages non pris en charge dans les configurations OpenTelemetry, configurez le marquage de télémétrie pour lier les données à un commit spécifique.
Niveaux de prise en charge
Datadog fournit différents niveaux de prise en charge pour les composants et configurations OpenTelemetry :
Datadog Supported Components : Composants appartenant à Datadog tels que le Datadog Connector, Datadog Exporter et Infra Attribute Processor. Ces composants sont maintenus par Datadog, reçoivent des mises à jour régulières et sont prioritaires pour les corrections de bugs et les améliorations de fonctionnalités.
Composants pris en charge par la communauté : composants OpenTelemetry inclus dans le collecteur DDOT par défaut. Datadog aide à garantir que ces composants sont sécurisés, stables et compatibles.
Composants personnalisés : composants ou configurations OpenTelemetry qui ne sont pas inclus par défaut, tels que des composants de collecteur personnalisés ou l’instrumentation d’exécutions non prise en charge. Datadog fournit des conseils et une documentation comme point de départ, mais ne prend pas directement en charge la fonctionnalité de ces composants. Pour les problèmes liés aux composants personnalisés, adressez-vous à la communauté OpenTelemetry ou aux responsables des composants.
Bien que l’OpenTelemetry Collector puisse être déployé dans de nombreux environnements, certaines plateformes présentent des limitations ou des exigences de prise en charge spécifiques.
- AWS EKS Fargate : Cet environnement n’est actuellement pas pris en charge et entraînera une facturation incorrecte du host d’infrastructure lorsqu’il est utilisé avec le OpenTelemetry Collector. Une prise en charge officielle est prévue pour une version ultérieure. Consultez le Collector setup guide pour obtenir les informations les plus récentes.
Bonnes pratiques
Lorsque vous utilisez Datadog et OpenTelemetry ensemble, Datadog recommande les bonnes pratiques suivantes pour garantir des performances optimales et éviter les problèmes potentiels :
- Évitez l’instrumentation mixte : Dans la plupart des cas, vous ne devez pas utiliser à la fois un SDK Datadog et un SDK OpenTelemetry dans la même application, car cela entraîne un comportement indéfini.
- Exception : La prise en charge de certains langages, tels que Python, nécessite l’installation à la fois du SDK Datadog et du SDK OpenTelemetry.
- Suivez toujours la documentation d’instrumentation spécifique au langage pour vous assurer d’utiliser la configuration correcte et prise en charge.
- Évitez d’exécuter Agent et Collector séparément sur le même host : N’exécutez pas l’Agent Datadog et un Collector OpenTelemetry séparé sur le même host, car cela pourrait causer des problèmes. Cependant, vous pouvez exécuter des Agents et des Collectors sur des hôtes différents au sein du même parc.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: