We automatically instrument and support a huge number of libraries, frameworks, and application servers... right out of the box!
Don't see your favorite tool listed here? Consider filing an issue, or contributing.
These are the supported libraries and frameworks:
Library/Framework | Versions |
---|---|
Akka HTTP | 10.0+ |
Apache Dubbo | 2.7+ (not including 3.x yet) |
Apache HttpAsyncClient | 4.1+ |
Apache HttpClient | 2.0+ |
Apache RocketMQ | 4.8+ |
Apache Wicket | 8.0+ |
Armeria | 1.3+ |
AsyncHttpClient | 1.9+ |
AWS Lambda | 1.0+ |
AWS SDK | 1.11.x and 2.2.0+ |
Cassandra Driver | 3.0+ |
Couchbase Client | 2.0+ (not including 3.x yet) |
Dropwizard Views | 0.7+ |
Elasticsearch API | 5.0+ |
Elasticsearch REST Client | 5.0+ |
Finatra | 2.9+ |
Geode Client | 1.4+ |
Grails | 3.0+ |
Google HTTP Client | 1.19+ |
Grizzly | 2.0+ (disabled by default) |
gRPC | 1.5+ |
Hibernate | 3.3+ |
HttpURLConnection | Java 7+ |
http4k † | 3.270.0+ |
Hystrix | 1.4+ |
JAX-RS | 0.5+ |
JAX-RS Client | 2.0+ |
JAX-WS | 2.0+ (not including 3.x yet) |
JDBC | Java 7+ |
Jedis | 1.4+ |
JMS | 1.1+ |
JSP | 2.3+ |
Kafka | 0.11+ |
khttp | 0.1+ |
Kubernetes Client | 7.0+ |
Lettuce | 4.0+ (not including 6.x yet) |
Log4j 1 | 1.2+ |
Log4j 2 | 2.7+ |
Logback | 1.0+ |
Mojarra | 1.2+ (not including 3.x yet) |
MongoDB Drivers | 3.3+ |
MyFaces | 1.2+ (not including 3.x yet) |
Netty | 3.8+ |
OkHttp | 3.0+ |
Play | 2.3+ (not including 2.8.x yet) |
Play WS | 1.0+ |
RabbitMQ Client | 2.7+ |
Ratpack | 1.4+ |
Reactor | 3.1+ |
Reactor Netty | 0.9+ |
Rediscala | 1.8+ |
Redisson | 3.0+ |
RMI | Java 7+ |
RxJava | 1.0+ |
Servlet | 2.2+ (not including 5.x yet) |
Spark Web Framework | 2.3+ |
Spring Batch | 3.0+ |
Spring Data | 1.8+ |
Spring Scheduling | 3.1+ |
Spring Web MVC | 3.1+ |
Spring Webflux | 5.0+ |
Spring Web Services | 2.0+ |
Spymemcached | 2.12+ |
Struts2 | 2.3+ |
Twilio | 6.6+ (not including 8.x yet) |
Undertow | 1.4+ |
Vert.x | 3.0+ |
Vert.x RxJava2 | 3.5+ |
† OpenTelemetry support provided by the library
These are the supported application servers:
Application server | Version | JVM | OS |
---|---|---|---|
Glassfish | 5.0.x, 5.1.x | OpenJDK 8, 11 | Ubuntu 18, Windows Server 2019 |
JBoss EAP | 7.1.x, 7.3.x | OpenJDK 8, 11 | Ubuntu 18, Windows Server 2019 |
Jetty | 9.4.x, 10.0.x, 11.0.x | OpenJDK 8, 11 | Ubuntu 20 |
Payara | 5.0.x, 5.1.x | OpenJDK 8, 11 | Ubuntu 18, Windows Server 2019 |
Tomcat | 7.0.x, 8.5.x, 9.0.x, 10.0.x | OpenJDK 8, 11 | Ubuntu 18 |
TomEE | 7.x, 8.x | OpenJDK 8, 11 | Ubuntu 18 |
Weblogic | 12 | Oracle JDK 8 | Oracle Linux 7, 8 |
Weblogic | 14 | Oracle JDK 8, 11 | Oracle Linux 7, 8 |
Websphere Liberty Profile | 20.0.0.12 | OpenJDK 8, 11 | Ubuntu 18, Windows Server 2019 |
WildFly | 13.0.x | OpenJDK 8 | Ubuntu 18, Windows Server 2019 |
WildFly | 17.0.1, 21.0.0 | OpenJDK 8, 11 | Ubuntu 18, Windows Server 2019 |
Some instrumentations can produce too many spans and make traces very noisy. For this reason, the following instrumentations are disabled by default:
jdbc-datasource
which creates spans whenever thejava.sql.DataSource#getConnection
method is called.
To enable them, add the otel.instrumentation.<name>.enabled
system property:
-Dotel.instrumentation.jdbc-datasource.enabled=true
When you use
Grizzly for
Servlet-based applications, you get better experience from Servlet-specific
support. As these two instrumentations conflict with each other, more generic
instrumentation for Grizzly HTTP server is disabled by default. If needed,
you can enable it by adding the following system property:
-Dotel.instrumentation.grizzly.enabled=true