Compatibilité

La bibliothèque de tracing Datadog Java est open source. Consultez le référentiel GitHub pour en savoir plus.

Java runtimes pris en charge

Le Java Tracer prend en charge l’instrumentation automatique pour les runtimes Oracle JDK, OpenJDK JVM et GraalVM.

Java Tracer v1 (latest)

Versions JavaSystèmes d'exploitationNiveau de support
à partir de 27 et au-dessusWindows (x86, x86-64)
Linux (x86, x86-64, arm64)
Mac (x86, x86-64, arm64)
Aperçu
de 18 à 26Windows (x86, x86-64)
Linux (x86, x86-64, arm64)
Mac (x86, x86-64, arm64)
GA
de 8 à 17Windows (x86, x86-64)
Linux (x86, x86-64)
Mac (x86, x86-64)
GA
Linux (arm64)
Mac (arm64)
Aperçu

Datadog ne prend pas officiellement en charge les versions de Java en accès anticipé.

Java Tracer v0

Versions JavaSystèmes d’exploitationNiveau de support
7 uniquementWindows (x86, x86-64)
Linux (x86, x86-64)
Mac (x86, x86-64)
Fin de vie
7 uniquementLinux (arm64)
Mac (arm64)
Fin de vie

Niveaux de support

NiveauSupport fourni
Non pris en chargeAucune implémentation. Contactez le support Datadog pour des demandes spéciales.
AperçuImplémentation initiale. Peut ne pas encore contenir toutes les fonctionnalités. Le support pour les nouvelles fonctionnalités ainsi que les corrections de bogues et de sécurité est fourni sur une base de meilleur effort.
Disponibilité générale (GA)Implémentation complète de toutes les fonctionnalités. Support complet pour les nouvelles fonctionnalités ainsi que les corrections de bogues et de sécurité.
MaintenanceImplémentation complète des fonctionnalités existantes. Ne reçoit pas de nouvelles fonctionnalités. Support uniquement pour les corrections de bogues et de sécurité.
Fin de vie (EOL)Aucun support.

Intégrations

Les intégrations en aperçu sont désactivées par défaut mais peuvent être activées individuellement :

  • Propriété système : -Ddd.integration.<INTEGRATION_NAME>.enabled=true
  • Variable d’environnement : DD_INTEGRATION_<INTEGRATION_NAME>_ENABLED=true

Compatibilité des frameworks web

dd-java-agent inclut le support pour le traçage automatique des frameworks web suivants.

Le traçage des frameworks web fournit :

  • le temps de la requête HTTP à la réponse
  • les balises pour la requête HTTP (code d’état, méthode, etc.)
  • la capture des erreurs et des traces de pile
  • le lien entre le travail créé dans une requête web et le traçage distribué
ServeurVersionsType de supportNoms d’instrumentation (utilisés pour la configuration)
Serveur Akka-Http10.0+Entièrement pris en chargeakka-http, akka-http-server
Apache Pekko1.0+Entièrement pris en chargepekko-http, pekko-http-server
Finatra Web2.9+Entièrement pris en chargefinatra
Grizzly2.0+Entièrement pris en chargegrizzly
Grizzly-HTTP2.3.20+Entièrement pris en chargegrizzly-filterchain
Compatible avec Java Servlet2.3+, 3.0+Entièrement pris en chargeservlet, servlet-2, servlet-3
Annotations Jax-RSJSR311-APIEntièrement pris en chargejax-rs, jaxrs, jax-rs-annotations, jax-rs-filter
Jetty7.0-12.xEntièrement pris en chargejetty
Serveur HTTP Micronaut2.x+Entièrement pris en chargemicronaut
Mulesoft4.5.0+Entièrement pris en chargemule
Serveur HTTP Netty3.8+Entièrement pris en chargenetty, netty-3.8, netty-4.0, netty-4.1
Play2.3-2.8Entièrement pris en chargeplay, play-action
Ratpack1.5+Entièrement pris en chargeratpack
Serveur HTTP Restlet2.2 - 2.4Entièrement pris en chargerestlet-http.
Spark Java2.3+Aperçusparkjava (nécessite jetty)
Spring Boot1.5+Entièrement pris en chargespring-web ou spring-webflux
Spring Web (MVC)4.0+Entièrement pris en chargespring-web
Spring WebFlux5.0+Entièrement pris en chargespring-webflux
Tomcat5.5+Entièrement pris en chargetomcat
Undertow2.0+Entièrement pris en chargeundertow
Vert.x3.4 - 5.xEntièrement pris en chargevertx, vertx-3.4, vertx-3.9, vertx-4.0, vertx-5.0
Websocket (JSR356)1.0+Aperçuwebsocket

Remarque : De nombreux serveurs d’applications sont compatibles avec Servlet et sont automatiquement couverts par cette instrumentation, tels que Websphere, Weblogic et JBoss. De plus, des frameworks comme Spring Boot (version 3) fonctionnent intrinsèquement car ils utilisent généralement un serveur d’application intégré pris en charge, tel que Tomcat, Jetty ou Netty.

Intégrations de framework désactivées par défaut

Les instrumentations suivantes sont désactivées par défaut et peuvent être activées avec les paramètres suivants :

InstrumentationÀ activer
Grizzly-Ddd.integration.grizzly-client.enabled=true
Grizzly-HTTP-Ddd.integration.grizzly-filterchain.enabled=true
Hazelcast (côté client uniquement)-Ddd.integration.hazelcast.enabled=true
-Ddd.integration.hazelcast_legacy.enabled=true
Ignite-Ddd.integration.ignite.enabled=true
JAX-WS-Ddd.integration.jax-ws.enabled=true
Source de données JDBC-Ddd.integration.jdbc-datasource.enabled=true
Mulesoft-Ddd.integration.mule.enabled=true
Netty Promise-Ddd.integration.netty-promise.enabled=true
Ning-Ddd.integration.ning.enabled=true
Spark Java-Ddd.integration.sparkjava.enabled=true
TIBCO BusinessWorks-Ddd.integration.tibco.enabled=true
Connexion URL-Ddd.integration.urlconnection.enabled=true
-Ddd.integration.httpurlconnection.enabled=true
Websocket-Ddd.trace.websocket.messages.enabled=true
ZIO-Ddd.integration.zio.experimental.enabled=true

Remarque : L’instrumentation d’intégration JAX-WS couvre les endpoints annotés avec @WebService (JAX-WS 1.x) et @WebServiceProvider (JAX-WS 2.x).

Vous ne voyez pas vos frameworks web souhaités ? Datadog ajoute continuellement un support supplémentaire. Contactez le support Datadog si vous avez besoin d’aide.

Compatibilité des frameworks de mise en réseau

dd-java-agent inclut le support pour le traçage automatique des frameworks de mise en réseau suivants.

Le traçage réseau fournit :

  • le temps de la demande à la réponse
  • les tags pour la demande (par exemple, le code de réponse)
  • la capture des erreurs et des traces de pile
  • le traçage distribué
FrameworkVersionsType de supportNoms d’instrumentation (utilisés pour la configuration)
Apache HTTP Client4.0+Entièrement pris en chargehttpclient, apache-httpclient, apache-http-client
Apache HTTP Async Client4.0+Entièrement pris en chargehttpasyncclient, apache-httpasyncclient
AWS Java SDK1.11+, 2.2+Entièrement pris en chargeaws-sdk
Camel-OpenTelemetry3.12.0+Aperçuopentelemetry-1
Commons HTTP Client2.0+Entièrement pris en chargecommons-http-client
Google HTTP Client1.19.0+Entièrement pris en chargegoogle-http-client
Google Pub/Sub1.116.0+Entièrement pris en chargegoogle-pubsub
Grizzly HTTP Client1.9+Aperçugrizzly-client
gRPC1.5+Entièrement pris en chargegrpc, grpc-client, grpc-server
HttpURLConnectiontoutes versionsEntièrement pris en chargehttpurlconnection, urlconnection
Kafka-Clients0.11+Entièrement pris en chargekafka
Kafka-Streams0.11+Entièrement pris en chargekafka, kafka-streams
Java RMItoutes versionsTraçage distribué non pris en chargermi, rmi-client, rmi-server
Jax RS Clients2.0+Entièrement pris en chargejax-rs, jaxrs, jax-rs-client
Jersey Client1.9-2.29Entièrement pris en chargejax-rs, jaxrs, jax-rs-client
JMS / Jakarta JMS1-3.0+Entièrement pris en chargejms, jms-1, jms-2, jakarta-jms
Netty HTTP Client4.0+Entièrement pris en chargenetty, netty-4.0, netty-4.1
Ning HTTP Client1.9.0+Aperçuning
OkHTTP2.2+Entièrement pris en chargeokhttp, okhttp-2,okhttp-3
Play WSClient1.0+Entièrement pris en chargeplay-ws
Rabbit AMQP2.7+Entièrement pris en chargeamqp, rabbitmq
SOFA RPC5.0+Entièrement pris en chargesofarpc
Spring SessionAwareMessageListener3.1+Entièrement pris en chargespring-jms-3.1
Spring WebClient5.0+Entièrement pris en chargespring-webflux, spring-webflux-client

Note Kafka : L’intégration Kafka de Datadog fonctionne avec la version Kafka 0.11+, qui prend en charge l’API Header. Cette API est utilisée pour injecter et extraire le contexte de trace. Si vous exécutez un environnement avec des versions mixtes, le courtier Kafka peut signaler incorrectement la version plus récente de Kafka. Cela pose un problème lorsque le SDK essaie d’injecter des en-têtes qui ne sont pas pris en charge par le producteur local. De plus, les consommateurs plus anciens ne peuvent pas consommer le message en raison de la présence d’en-têtes. Pour éviter ces problèmes, si vous exécutez un environnement Kafka avec des versions mixtes antérieures à 0.11, désactivez la propagation du contexte avec la variable d’environnement : DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false.

Note JMS : L’intégration JMS de Datadog ajoute et lit automatiquement les propriétés des objets de message x__dash__datadog__dash__trace__dash__id et x__dash__datadog__dash__parent__dash__id pour maintenir la propagation du contexte entre les services consommateurs et producteurs.

Note Camel : La propagation de trace distribuée sur les routes Camel n’est pas prise en charge.

Note SOFA RPC : L’intégration SOFA RPC de Datadog prend en charge les protocoles de transport Bolt, Triple et REST. Triple utilise le transport gRPC ; le traçage distribué pour les appels Triple nécessite que l’intégration grpc reste activée.

Vous ne voyez pas le framework réseau souhaité ? Datadog ajoute continuellement un support supplémentaire. Contactez le support Datadog si vous avez besoin d’aide.

Compatibilité des magasins de données

dd-java-agent inclut le support pour le traçage automatique des frameworks/drivers de base de données suivants.

Le traçage des magasins de données fournit :

  • temps de la requête à la réponse
  • informations de requête (par exemple, une chaîne de requête assainie)
  • capture d’erreur et de stacktrace
Base de donnéesVersionsType de supportNoms d’instrumentation (utilisés pour la configuration)
Aerospike4.0+Entièrement pris en chargeaerospike
Couchbase2.0+Entièrement pris en chargecouchbase
Cassandra3.0+Entièrement pris en chargecassandra
Elasticsearch Transport2.0+Entièrement pris en chargeelasticsearch, elasticsearch-transport, elasticsearch-transport-{2,5,6,7} (choisissez-en un)
Elasticsearch Rest5.0+Entièrement pris en chargeelasticsearch, elasticsearch-rest, elasticsearch-rest-{5,6,7} (choisissez-en un)
Ignite2.0-3.0Aperçuignite
JDBCN/AEntièrement pris en chargejdbc, jdbc-datasource
Jedis1.4+Entièrement pris en chargejedis, redis
Lettuce4.0+Entièrement pris en chargelettuce, lettuce-4-async, lettuce-5-rx
MongoDB3.0-4.0+Entièrement pris en chargemongo
OpenSearch Rest1.x-2.xEntièrement pris en chargeopensearch, opensearch-rest
OpenSearch Transport1.x-2.xEntièrement pris en chargeopensearch, opensearch-transport
RediScala1.5+Entièrement pris en chargerediscala, redis
Redisson2.x-3.xEntièrement pris en chargeredisson, redis
SpyMemcached2.12+Entièrement pris en chargespymemcached
Vert.x Cassandra Client3.9-4.xEntièrement pris en chargecassandra
Vert.x Redis Client3.9-4.xEntièrement pris en chargevertx-redis-client
Vert.x MySQL Client3.9-4.xEntièrement pris en chargevertx-sql-client

Remarque : Redis 6.0+ prend en charge l’authentification en ligne dans des commandes telles que HELLO, MIGRATE et ACL SETUSER.

  • Agent de trace Datadog : La version minimale requise et recommandée est 7.76.1 pour garantir que les paramètres d’authentification sont automatiquement obfusqués dans les métadonnées de trace.
  • Extension Lambda Datadog (environnements sans serveur) : La version minimale requise est v28.0.0.

dd-java-agent est également compatible avec les pilotes JDBC courants, y compris :

  • Apache Derby
  • Firebird SQL
  • H2 Database Engine
  • HSQLDB
  • IBM DB2
  • MariaDB
  • MSSQL (Microsoft SQL Server)
  • MySQL
  • Oracle
  • Postgres SQL
  • ScalikeJDBC

Intégrations de base de données désactivées par défaut

Les instrumentations suivantes sont désactivées par défaut et peuvent être activées avec les paramètres suivants :

InstrumentationPour activer
JDBC-Datasource- Propriété système : -Ddd.integration.jdbc-datasource.enabled=true
- Variable d’environnement : DD_INTEGRATION_JDBC_DATASOURCE_ENABLED=true

Vous ne voyez pas vos magasins de données souhaités ? Datadog ajoute continuellement un support supplémentaire. Contactez le support Datadog si vous avez besoin d’aide.

Compatibilité supplémentaire avec les frameworks

dd-java-agent inclut le support pour le traçage automatique des frameworks suivants.

FrameworkVersionsSupport TypeInstrumentation Names (used for configuration)
Apache CXF (Jax-WS)3.0+OpenTelemetry Extensioncxf
Datanucleus JDO4.0+Entièrement pris en chargedatanucleus
Dropwizard Views0.7+Entièrement pris en chargedropwizard, dropwizard-view
GraphQL14.0+Entièrement pris en chargegraphql-java
Hazelcast (client)3.6+Aperçuhazelcast, hazelcast_legacy
Hibernate3.5+Entièrement pris en chargehibernate, hibernate-core
Hystrix1.4+Entièrement pris en chargehystrix
Rendu JSP2.3+Entièrement pris en chargejsp, jsp-render, jsp-compile
JUnit4.1+, 5.3+Entièrement pris en chargejunit, junit-4, junit-5
Kotlin Coroutines1.3+Entièrement pris en chargekotlin_coroutine
Project Reactor3.1+Entièrement pris en chargereactor-core
Quartz2.xEntièrement pris en chargequartz
RxJava2.xEntièrement pris en chargerxjava
Spring Data1.8+Entièrement pris en chargespring-data
Planification Spring3.1+Entièrement pris en chargespring-scheduling
TIBCO BusinessWorks5.14.0 - 6.11.0Aperçutibco, tibco_bw
Twilio SDK< 8.0Entièrement pris en chargetwilio-sdk

Vous ne voyez pas les frameworks souhaités ? Datadog ajoute continuellement un support supplémentaire. Pour demander un framework, contactez notre équipe de support.

Pour améliorer la visibilité des applications utilisant des frameworks non pris en charge, considérez l’une des solutions suivantes :

Désactiver les intégrations

La plupart des intégrations sont activées par défaut. Le paramètre suivant peut modifier la configuration par défaut afin de la désactiver.

  • Propriété système : -Ddd.integrations.enabled=false
  • Variable d’environnement : DD_INTEGRATIONS_ENABLED=false

Les intégrations peuvent être activées ou désactivées individuellement (ce qui remplace la valeur par défaut ci-dessus).

  • Propriété système : -Ddd.integration.<INTEGRATION_NAME>.enabled=true
  • Variable d’environnement : DD_INTEGRATION_<INTEGRATION_NAME>_ENABLED=true

(Le nom de chaque intégration est affiché ci-dessus.)

Problèmes connus

  • L’exécution du traceur Java dans Bitbucket n’est pas prise en charge.
  • Charger plusieurs agents Java qui effectuent des fonctions APM/tracing n’est pas une configuration recommandée ou prise en charge.
  • Lors de l’exécution du SDK avec Java 24+, vous pouvez voir des avertissements liés à l’accès natif JNI. Supprimez ces avertissements en ajoutant l’option --enable-native-access=ALL-UNNAMED. Voir JEP 472 pour plus d’informations.

Support de chargement et de liaison de classes à l’avance (AOT)

Pour améliorer le temps de démarrage, le chargement et la liaison de classes à l’avance (AOT) rendent les classes d’application instantanément disponibles dans un état chargé et lié lorsque la JVM démarre. Voir JEP 483 et JEP 514 pour plus d’informations.

Exigences

Utiliser :

Configuration

Pour configurer le chargement et la liaison de classes AOT pour APM, ajoutez le Datadog Java SDK lors de l’exécution de la formation :

java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCacheOutput=app.aot -jar App.jar

Utilisation

Pendant la production, ajoutez le même Datadog Java SDK avec les données de formation mises en cache précédemment :

java -javaagent:/path/to/dd-java-agent.jar -XX:AOTCache=app.aot -jar App.jar

Vous pouvez visualiser les traces en utilisant le Trace Explorer.

Ne pas attacher le Datadog Java SDK lors de l’exécution de formation

Si vous voyez cet avertissement en production, cela signifie que le Datadog Java SDK n’a pas été attaché lors de la formation :

Mismatched values for property jdk.module.addmods: java.instrument specified during runtime but not during dump time

La JVM ne peut alors pas utiliser le cache AOT pour améliorer le temps de démarrage. La solution consiste à attacher le Datadog Java SDK lors de la formation.

Support de l’image native GraalVM

L’image native GraalVM est une technologie qui vous permet de compiler des applications Java en exécutables natifs. Le Datadog Java SDK prend en charge l’image native GraalVM. Cela vous permet de compiler vos applications en exécutables natifs tout en bénéficiant des capacités de traçage offertes par la bibliothèque.

Exigences

Utiliser :

Configuration

Pour configurer le Datadog Java SDK avec GraalVM Native Image, suivez ces étapes :

  1. Instrumentez votre application, en suivant les étapes décrites dans Tracer les applications Java.
  2. Lorsque vous construisez un exécutable natif avec la commande native-image, ajoutez l’argument -J-javaagent:/path/to/dd-java-agent.jar. Exemple :
    native-image -J-javaagent:/path/to/dd-java-agent.jar -jar App.jar
    
  3. (Optionnel) Activez l’intégration du profiler en ajoutant l’argument suivant : -J-Ddd.profiling.enabled=true --enable-monitoring=jfr.
    • Pour les versions du traceur antérieures à 1.39.1, lors de l’exécution de l’exécutable natif généré, assurez-vous que DD_PROFILING_START_FORCE_FIRST=true est défini comme variable d’environnement.

Pour configurer le Datadog Java SDK avec Quarkus Native, suivez ces étapes :

  1. Instrumentez votre application, en suivant les étapes décrites dans Tracer les applications Java.
  2. Lorsque vous construisez un exécutable natif, utilisez la propriété quarkus.native.additional-build-args. Exemple :
    ./mvnw package -Dnative -Dquarkus.native.additional-build-args='-J-javaagent:/path/to/dd-java-agent.jar'
    
  3. (Facultatif) Activez l’intégration du profiler en ajoutant l’argument suivant : -J-Ddd.profiling.enabled=true --enable-monitoring=jfr.
    • Pour les versions du traceur antérieures à 1.39.1, lors de l’exécution de l’exécutable natif généré, assurez-vous que DD_PROFILING_START_FORCE_FIRST=true est défini comme variable d’environnement.

Pour configurer le Datadog Java SDK avec Spring Native, suivez ces étapes :

  1. Instrumentez votre application, en suivant les étapes décrites dans Tracer les applications Java.
  2. Pour les constructions Spring Native basées sur Buildpacks, activez le Paketo Buildpack pour Datadog en utilisant BP_DATADOG_ENABLED=true.
    • Vous pouvez le faire au niveau de l’outil de construction, comme Maven :
    <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <image>
            ...
            <env>
              ...
              <BP_DATADOG_ENABLED>true</BP_DATADOG_ENABLED>
              ...
            </env>
          </image>
        </configuration>
      </plugin>
    </plugins>
    </build>
    
    • Alternativement, vous pouvez utiliser la commande pack build avec l’option --env BP_DATADOG_ENABLED=true pour activer le buildpack Datadog.
  3. (Facultatif) Activez l’intégration du profiler en définissant la variable d’environnement BP_NATIVE_IMAGE_BUILD_ARGUMENTS=’-J-Ddd.profiling.enabled=true --enable-monitoring=jfr’.
    • Pour les versions du traceur antérieures à 1.39.1, lors de l’exécution de l’exécutable natif généré, assurez-vous que DD_PROFILING_START_FORCE_FIRST=true est défini comme variable d’environnement.
Pour GraalVM 25, vous pouvez voir des erreurs liées à Use of Unsafe. Ajouter -Dnet.bytebuddy.safe=false lors de la construction de l'exécutable natif pour résoudre ce problème.

Utilisation

Après avoir terminé la configuration, le service doit envoyer des traces à Datadog.

Vous pouvez visualiser les traces en utilisant le Trace Explorer.

Les fonctionnalités ne sont pas activées ou configurées correctement pour les images natives

Il existe des problèmes connus concernant l’accès aux propriétés système à l’exécution depuis un binaire construit avec Graal Native Image.

  • Pour la configuration à l’exécution, utilisez des variables d’environnement (DD_PROPERTY_NAME=value), au lieu des propriétés système (-Ddd.property.name=value).
  • L’exception à cette règle est lors de l’activation du profileur. Dans ce cas, passez -J-Ddd.profiling.enabled=true à l’outil native-image au moment de la construction __.
Les versions du buildpack native-image antérieures à 5.12.2

Les anciennes versions du buildpack native-image exposent l’option suivante : USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM.

Lorsque cette option est false, des exceptions comme celles-ci peuvent se produire :

Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError:
com.oracle.graal.pointsto.constraints.UnsupportedFeatureException:
No instances of datadog.trace.bootstrap.DatadogClassLoader are allowed in the image heap
as this class should be initialized at image runtime. To see how this object got
instantiated use --trace-object-instantiation=datadog.trace.bootstrap.DatadogClassLoader.

Les solutions à ce problème sont :

  • Définir USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM explicitement sur vrai dans la configuration de l’environnement de l’image,
  • Ou mettre à niveau le buildpack native-image vers la version 5.12.2 ou ultérieure. La meilleure façon de procéder est de mettre à niveau le buildpack java-native-image vers la version 8.13.0 ou ultérieure.
Buildpack Paketo pour Datadog versions antérieures à 4.6.0

Le buildpack Paketo pour Datadog avait un bug dans les anciennes versions qui se manifestait par le message d’erreur suivant :

disabling Datadog at launch time is unsupported for Node
ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers
paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1

La solution à ce problème est de mettre à niveau vers la version 4.6.0 ou ultérieure.

Le build Spring Native plante avec l’erreur exec.d/toggle

Vous pouvez rencontrer une erreur similaire à celle ci-dessus, même sur des versions de buildpack plus récentes que 4.6.0, lors de la construction d’une image native Spring Boot :

disabling Datadog at launch time is unsupported for Node
ERROR: failed to launch: exec.d: failed to execute exec.d file at path '/layers
paketo-buildpacks_datadog/helper/exec.d/toggle': exit status 1

Cela se produit généralement parce que le buildpack Datadog s’exécute avant le buildpack d’image native, donc il ne sait pas qu’une construction d’image native est prévue. Il ajoute incorrectement un script de basculement destiné aux builds JVM, qui est incompatible avec l’exécutable natif final.

La solution consiste à définir explicitement la variable d’environnement BP_NATIVE_IMAGE sur true dans la configuration spring-boot-maven-plugin. Cela garantit que tous les buildpacks sont conscients qu’il s’agit d’une build d’image native dès le départ.

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <image>
          ...
          <env>
            ...
            <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
            ...
          </env>
        </image>
      </configuration>
    </plugin>
  </plugins>
</build>
Problème d’activation du SDK Datadog

Vous pourriez rencontrer des erreurs d’initialisation si votre configuration de traceur repose sur les Unix Domain Sockets (UDS), qui ne sont pas pris en charge dans les images natives :

dd.trace 2024-12-30 08:34:43:306 +0000] [main] WARN datadog.trace.agent.tooling.nativeimage.TracerActivation - Problem activating datadog tracer
java.lang.NoClassDefFoundError: Could not initialize class jnr.unixsocket.UnixSocketChannel

La solution consiste à configurer le traceur Java pour utiliser une communication basée sur l’hôte (hostip ou service mode), plutôt que sur une communication basée sur des sockets (socket mode).

Pour plus d’informations, voir Configurer le mode de communication APM et DogstatsD. Pour les configurations qui ne dépendent pas de l’Admission Controller, voir la documentation pour DD_TRACE_AGENT_URL.

Lectures complémentaires

Documentation, liens et articles supplémentaires utiles: