Compatibility

The Java Datadog Trace library is open source - view the GitHub repository for more information.

Supported Java runtimes

The Java Tracer supports automatic instrumentation for the following Oracle JDK and OpenJDK JVM runtimes.

Java versionsOperating SystemsSupport levelTracer version
18 to 21Windows (x86, x86-64)
Linux (x86, x86-64, arm64)
Mac (x86, x86-64, arm64)
BetaLatest
8 to 17Linux (arm64)
Mac (arm64)
BetaLatest
7Linux (arm64)
Mac (arm64)
End-of-lifev0
8 to 17Windows (x86, x86-64)
Linux (x86, x86-64)
Mac (x86, x86-64)
GALatest
7Windows (x86, x86-64)
Linux (x86, x86-64)
Mac (x86, x86-64)
Maintenancev0

Datadog does not officially support any early-access versions of Java.

Levels of support

LevelSupport provided
UnsupportedNo implementation. Contact Datadog support for special requests.
BetaInitial implementation. May not yet contain all features. Support for new features and bug and security fixes are provided on a best-effort basis.
General Availability (GA)Full implementation of all features. Full support for new features and bug and security fixes.
MaintenanceFull implementation of existing features. Does not receive new features. Support for bug and security fixes only.
End-of-life (EOL)No support.

Integrations

Beta integrations are disabled by default but can be enabled individually:

  • System Property: -Ddd.integration.<INTEGRATION_NAME>.enabled=true
  • Environment Variable: DD_INTEGRATION_<INTEGRATION_NAME>_ENABLED=true

Web framework compatibility

dd-java-agent includes support for automatically tracing the following web frameworks.

Web Framework tracing provides:

  • timing HTTP request to response
  • tags for the HTTP request (status code, method, etc)
  • error and stacktrace capturing
  • linking work created within a web request and Distributed Tracing
ServerVersionsSupport TypeInstrumentation Names (used for configuration)
Akka-Http Server10.0+Fully Supportedakka-http, akka-http-server
Finatra Web2.9+Fully Supportedfinatra
Grizzly2.0+Fully Supportedgrizzly
Grizzly-HTTP2.3.20+Fully Supportedgrizzly-filterchain
Java Servlet Compatible2.3+, 3.0+Fully Supportedservlet, servlet-2, servlet-3
Jax-RS AnnotationsJSR311-APIFully Supportedjax-rs, jaxrs, jax-rs-annotations, jax-rs-filter
Jetty7.0-12.xFully Supportedjetty
Micronaut HTTP Server2.xFully Supportedmicronaut
Mulesoft4Fully Supportedmule
Netty HTTP Server3.8+Fully Supportednetty, netty-3.8, netty-4.0, netty-4.1
Play2.3-2.8Fully Supportedplay, play-action
Ratpack1.5+Fully Supportedratpack
Restlet HTTP Server2.2 - 2.4Fully Supportedrestlet-http.
Spark Java2.3+Betasparkjava (requires jetty)
Spring Boot1.5Fully Supportedspring-web or spring-webflux
Spring Web (MVC)4.0+Fully Supportedspring-web
Spring WebFlux5.0+Fully Supportedspring-webflux
Tomcat5.5+Fully Supportedtomcat
Vert.x3.4+Fully Supportedvertx, vertx-3.4, vertx-3.9, vertx-4.0

Note: Many application servers are Servlet compatible and are automatically covered by that instrumentation, such as Websphere, Weblogic, and JBoss. Also, frameworks like Spring Boot (version 3) inherently work because they usually use a supported embedded application server, such as Tomcat, Jetty, or Netty.

Framework Integrations Disabled By Default

The following instrumentations are disabled by default and can be enabled with the following settings:

InstrumentationTo Enable
JAX-WS-Ddd.integration.jax-ws.enabled=true
Mulesoft-Ddd.integration.mule.enabled=true, -Ddd.integration.grizzly-client.enabled=true, -Ddd.integration.grizzly-filterchain.enabled=true
Google Pub/Sub-Ddd.integration.google-pubsub.enabled=true
Grizzly-Ddd.integration.grizzly-client.enabled=true
Grizzly-HTTP-Ddd.integration.grizzly-filterchain.enabled=true
Ning-Ddd.integration.ning.enabled=true
Spark Java-Ddd.integration.sparkjava.enabled=true

Note: JAX-WS integration instruments endpoints annotated with @WebService (JAX-WS 1.x) and @WebServiceProvider (JAX-WS 2.x).

Don’t see your desired web frameworks? Datadog is continually adding additional support. Contact Datadog support if you need help.

Networking framework compatibility

dd-java-agent includes support for automatically tracing the following networking frameworks.

Networking tracing provides:

  • timing request to response
  • tags for the request (for example, response code)
  • error and stacktrace capturing
  • distributed tracing
FrameworkVersionsSupport TypeInstrumentation Names (used for configuration)
Apache HTTP Client4.0+Fully Supportedhttpclient, apache-httpclient, apache-http-client
Apache HTTP Async Client4.0+Fully Supportedhttpasyncclient, apache-httpasyncclient
AWS Java SDK1.11+, 2.2+Fully Supportedaws-sdk
Camel-OpenTelemetry3.12.0+Betaopentelemetry-1
Commons HTTP Client2.0+Fully Supportedcommons-http-client
Google HTTP Client1.19.0+Fully Supportedgoogle-http-client
Google Pub/Sub1.116.0+Betagoogle-pubsub
Grizzly HTTP Client1.9+Betagrizzly-client
gRPC1.5+Fully Supportedgrpc, grpc-client, grpc-server
HttpURLConnectionallFully Supportedhttpurlconnection, urlconnection
Kafka-Clients0.11+Fully Supportedkafka
Kafka-Streams0.11+Fully Supportedkafka, kafka-streams
Java RMIallDistributed Tracing Not Supportedrmi, rmi-client, rmi-server
Jax RS Clients2.0+Fully Supportedjax-rs, jaxrs, jax-rs-client
Jersey Client1.9-2.29Fully Supportedjax-rs, jaxrs, jax-rs-client
JMS1 and 2Fully Supportedjms, jms-1, jms-2
Netty HTTP Client4.0+Fully Supportednetty, netty-4.0, netty-4.1
Ning HTTP Client1.9.0+Betaning
OkHTTP2.2+Fully Supportedokhttp, okhttp-2,okhttp-3
Play WSClient1.0+Fully Supportedplay-ws
Rabbit AMQP2.7+Fully Supportedamqp, rabbitmq
Spring SessionAwareMessageListener3.1+Fully Supportedspring-jms-3.1
Spring WebClient5.0+Fully Supportedspring-webflux, spring-webflux-client

Kafka Note: Datadog’s Kafka integration works with Kafka version 0.11+, which supports the Header API. This API is used to inject and extract trace context. If you are running a mixed version environment, the Kafka broker can incorrectly report the newer version of Kafka. This causes an issue when the tracer tries to inject headers that are not supported by the local producer. Additionally, older consumers are unable to consume the message because of the presence of headers. To prevent these issues, if you are running a mixed version Kafka environment with versions older than 0.11, disable context propagation with the environment variable: DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false.

JMS Note: Datadog’s JMS integration automatically adds and reads message object properties x__dash__datadog__dash__trace__dash__id and x__dash__datadog__dash__parent__dash__id to maintain context propagation between consumer and producer services.

Camel Note: Distributed trace propagation over Camel routes is not supported.

Don’t see your desired networking framework? Datadog is continually adding additional support. Contact Datadog support if you need help.

Data store compatibility

dd-java-agent includes support for automatically tracing the following database frameworks/drivers.

Datastore tracing provides:

  • timing request to response
  • query info (for example, a sanitized query string)
  • error and stacktrace capturing
DatabaseVersionsSupport TypeInstrumentation Names (used for configuration)
Aerospike4.0+Fully Supportedaerospike
Couchbase2.0+Fully Supportedcouchbase
Cassandra3.0+Fully Supportedcassandra
Elasticsearch Transport2.0+Fully Supportedelasticsearch, elasticsearch-transport, elasticsearch-transport-{2,5,6,7} (pick one)
Elasticsearch Rest5.0+Fully Supportedelasticsearch, elasticsearch-rest, elasticsearch-rest-{5,6,7} (pick one)
JDBCN/AFully Supportedjdbc, jdbc-datasource
Jedis1.4+Fully Supportedjedis, redis
Lettuce4.0+Fully Supportedlettuce, lettuce-4-async, lettuce-5-rx
MongoDB3.0-4.0+Fully Supportedmongo
OpenSearch Rest1.x-2.xFully Supportedopensearch, opensearch-rest
OpenSearch Transport1.0+Fully Supportedopensearch, opensearch-transport
RediScala1.5+Fully Supportedrediscala, redis
Redisson2.x-3.xFully Supportedredisson, redis
SpyMemcached2.12+Fully Supportedspymemcached
Vert.x Cassandra Client3.9+Fully Supportedcassandra
Vert.x Redis Client3.9Fully Supportedvertx-redis-client
Vert.x MySQL Client3.9+Fully Supportedvertx-sql-client

dd-java-agent is also compatible with common JDBC drivers including:

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

Database Integrations Disabled By Default

The following instrumentations are disabled by default and can be enabled with the following settings:

InstrumentationTo Enable
JDBC-Datasource-Ddd.integration.jdbc-datasource.enabled=true

Don’t see your desired datastores? Datadog is continually adding additional support. Contact Datadog support if you need help.

Additional framework compatibility

dd-java-agent includes support for automatically tracing the following frameworks.

FrameworkVersionsSupport TypeInstrumentation Names (used for configuration)
Datanucleus JDO4.0+Fully Supporteddatanucleus
Dropwizard Views0.7+Fully Supporteddropwizard, dropwizard-view
GraphQL14.0+Fully Supportedgraphql-java
Hibernate3.5+Fully Supportedhibernate, hibernate-core
Hystrix1.4+Fully Supportedhystrix
JSP Rendering2.3+Fully Supportedjsp, jsp-render, jsp-compile
JUnit4.1+, 5.3+Fully Supportedjunit, junit-4, junit-5
Project Reactor3.1+Fully Supportedreactor-core
Quartz2.xFully Supportedquartz
RxJava2.xFully Supportedrxjava
Spring Data1.8+Fully Supportedspring-data
Spring Scheduling3.1+Fully Supportedspring-scheduling
Twilio SDK< 8.0Fully Supportedtwilio-sdk

Don’t see your desired frameworks? Datadog is continually adding additional support. To request a framework, contact our awesome support team.

To improve visibility into applications using unsupported frameworks, consider:

Disabling integrations

Most integrations are enabled by default. The following setting can change the default to disabled.

  • System Property: -Ddd.integrations.enabled=false
  • Environment Variable: DD_INTEGRATIONS_ENABLED=false

Integrations can be enabled or disabled individually (overriding the default above).

  • System Property: -Ddd.integration.<INTEGRATION_NAME>.enabled=true
  • Environment Variable: DD_INTEGRATION_<INTEGRATION_NAME>_ENABLED=true

(See above for each integration’s name.)

Known issues

Running the Java tracer in Bitbucket is not supported.

Further Reading

Additional helpful documentation, links, and articles: