Skip to content

Latest commit

 

History

History
232 lines (208 loc) · 102 KB

supported-libraries.md

File metadata and controls

232 lines (208 loc) · 102 KB

Supported libraries, frameworks, application servers, and JVMs

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.

Contents

Libraries / Frameworks

These are the supported libraries and frameworks:

Library/Framework Auto-instrumented versions Standalone Library Instrumentation [1] Semantic Conventions
Akka Actors 2.3+ N/A Context propagation
Akka HTTP 10.0+ N/A HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics, Provides http.route [2]
Alibaba Druid 1.0+ opentelemetry-alibaba-druid-1.0 Database Pool Metrics
Apache Axis2 1.6+ N/A Provides http.route [2], Controller Spans [3]
Apache Camel 2.20+ (not including 3.x yet) N/A Dependent on components in use
Apache CXF JAX-RS 3.2+ N/A Provides http.route [2], Controller Spans [3]
Apache CXF JAX-WS 3.0+ N/A Provides http.route [2], Controller Spans [3]
Apache DBCP 2.0+ opentelemetry-apache-dbcp-2.0 Database Pool Metrics
Apache Dubbo 2.7+ opentelemetry-apache-dubbo-2.7 RPC Client Spans, RPC Server Spans
Apache HttpAsyncClient 4.1+ N/A HTTP Client Spans, HTTP Client Metrics
Apache HttpClient 2.0+ opentelemetry-apache-httpclient-4.3,
opentelemetry-apache-httpclient-5.2
HTTP Client Spans, HTTP Client Metrics
Apache ShenYu 2.4+ N/A Provides http.route [2]
Apache Kafka Producer/Consumer API 0.11+ opentelemetry-kafka-clients-2.6 Messaging Spans
Apache Kafka Streams API 0.11+ N/A Messaging Spans
Apache MyFaces 1.2+ (not including 3.x yet) N/A Provides http.route [2], Controller Spans [3]
Apache Pekko Actors 1.0+ N/A Context propagation
Apache Pekko HTTP 1.0+ N/A HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics, Provides http.route [2]
Apache Pulsar 2.8+ N/A Messaging Spans
Apache RocketMQ gRPC/Protobuf-based Client 5.0+ N/A Messaging Spans
Apache RocketMQ Remoting-based Client 4.8+ opentelemetry-rocketmq-client-4.8 Messaging Spans
Apache Struts 2 2.3+ N/A Provides http.route [2], Controller Spans [3]
Apache Tapestry 5.4+ N/A Provides http.route [2], Controller Spans [3]
Apache Wicket 8.0+ N/A Provides http.route [2]
Armeria 1.3+ opentelemetry-armeria-1.3 HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics
Armeria gRPC 1.14+ RPC Client Spans, RPC Client Metrics, RPC Server Spans, RPC Server Metrics
AsyncHttpClient 1.9+ N/A HTTP Client Spans, HTTP Client Metrics
AWS Lambda 1.0+ opentelemetry-aws-lambda-core-1.0,
opentelemetry-aws-lambda-events-2.2
FaaS Server Spans
AWS SDK 1.11.x and 2.2+ opentelemetry-aws-sdk-1.11,
opentelemetry-aws-sdk-1.11-autoconfigure,
opentelemetry-aws-sdk-2.2,
opentelemetry-aws-sdk-2.2-autoconfigure
Messaging Spans, Database Client Spans, HTTP Client Spans
Azure Core 1.14+ N/A Context propagation
Cassandra Driver 3.0+ opentelemetry-cassandra-4.4 Database Client Spans
Clickhouse Client 0.5+ N/A Database Client Spans
Couchbase Client 2.0+ and 3.1+ N/A Database Client Spans
c3p0 0.9.2+ opentelemetry-c3p0-0.9 Database Pool Metrics
Dropwizard Metrics 4.0+ (disabled by default) N/A none
Dropwizard Views 0.7+ N/A Controller Spans [3]
Eclipse Grizzly 2.3+ N/A HTTP Server Spans, HTTP Server Metrics
Eclipse Jersey 2.0+ N/A Provides http.route [2], Controller Spans [3]
Eclipse Jetty HTTP Client 9.2 - 9.4.x,
12.0+
opentelemetry-jetty-httpclient-9.2
opentelemetry-jetty-httpclient-12.0
HTTP Client Spans, HTTP Client Metrics
Eclipse Metro 2.2+ N/A Provides http.route [2], Controller Spans [3]
Eclipse Mojarra 1.2+ N/A Provides http.route [2], Controller Spans [3]
Elasticsearch API Client 7.16 - 7.17.19,
8.0 - 8.9.+ [4]
N/A Elasticsearch Client Spans
Elasticsearch REST Client 5.0+ N/A Database Client Spans
Elasticsearch Transport Client 5.0+ N/A Database Client Spans
Finagle 23.11+ N/A none
Finatra 2.9+ N/A Provides http.route [2], Controller Spans [3]
Geode Client 1.4+ N/A Database Client Spans
Google HTTP Client 1.19+ N/A HTTP Client Spans, HTTP Client Metrics
Grails 3.0+ N/A Provides http.route [2], Controller Spans [3]
GraphQL Java 12.0+ opentelemetry-graphql-java-12.0,
opentelemetry-graphql-java-20.0
GraphQL Server Spans
gRPC 1.6+ opentelemetry-grpc-1.6 RPC Client Spans, RPC Client Metrics, RPC Server Spans, RPC Server Metrics
Guava ListenableFuture 10.0+ opentelemetry-guava-10.0 Context propagation
GWT 2.0+ N/A RPC Server Spans
Hibernate 3.3+ N/A none
Hibernate Reactive 1.0+ N/A none
HikariCP 3.0+ opentelemetry-hikaricp-3.0 Database Pool Metrics
HttpURLConnection Java 8+ N/A HTTP Client Spans, HTTP Client Metrics
Hystrix 1.4+ N/A none
InfluxDB Client 2.4+ N/A Database Client Spans
Java Executors Java 8+ N/A Context propagation
Java Http Client Java 11+ opentelemetry-java-http-client HTTP Client Spans, HTTP Client Metrics
java.util.logging Java 8+ N/A none
Java Platform Java 8+ opentelemetry-runtime-telemetry-java8,
opentelemetry-runtime-telemetry-java17,
opentelemetry-resources
JVM Runtime Metrics
Javalin 5.0+ N/A Provides http.route [2]
JAX-RS 0.5+ N/A Provides http.route [2], Controller Spans [3]
JAX-RS Client 1.1+ N/A HTTP Client Spans, HTTP Client Metrics
JAX-WS 2.0+ (not including 3.x yet) N/A Provides http.route [2], Controller Spans [3]
JBoss Log Manager 1.1+ N/A none
JDBC Java 8+ opentelemetry-jdbc Database Client Spans
Jedis 1.4+ N/A Database Client Spans
JMS 1.1+ N/A Messaging Spans
Jodd Http 4.2+ N/A HTTP Client Spans, HTTP Client Metrics
JSP 2.3+ N/A Controller Spans [3]
Kotlin Coroutines 1.0+ N/A Context propagation
Ktor 1.0+ opentelemetry-ktor-1.0,
opentelemetry-ktor-2.0
HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics
Kubernetes Client 7.0+ N/A HTTP Client Spans
Lettuce 4.0+ opentelemetry-lettuce-5.1 Database Client Spans
Log4j 1 1.2+ N/A none
Log4j 2 2.11+ opentelemetry-log4j-appender-2.17,
opentelemetry-log4j-context-data-2.17-autoconfigure
none
Logback 1.0+ opentelemetry-logback-appender-1.0,
opentelemetry-logback-mdc-1.0
none
Micrometer 1.5+ opentelemetry-micrometer-1.5 none
MongoDB Driver 3.1+ opentelemetry-mongo-3.1 Database Client Spans
MyBatis 3.2+ N/A none
Netty HTTP codec [5] 3.8+ opentelemetry-netty-4.1 HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics
OkHttp 2.2+ opentelemetry-okhttp-3.0 HTTP Client Spans, HTTP Client Metrics
Oracle UCP 11.2+ opentelemetry-oracle-ucp-11.2 Database Pool Metrics
OSHI 5.3.1+ opentelemetry-oshi System Metrics (partial support)
Play MVC 2.4+ N/A Provides http.route [2], Controller Spans [3]
Play WS 1.0+ N/A HTTP Client Spans, HTTP Client Metrics
PowerJob 4.0.0+ N/A none
Quarkus Resteasy Reactive 2.16.7+ N/A Provides http.route [2]
Quartz 2.0+ opentelemetry-quartz-2.0 none
R2DBC 1.0+ opentelemetry-r2dbc-1.0 Database Client Spans
RabbitMQ Client 2.7+ N/A Messaging Spans
Ratpack 1.4+ opentelemetry-ratpack-1.7 HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics
Reactor 3.1+ opentelemetry-reactor-3.1 Context propagation
Reactor Netty 0.9+ N/A HTTP Client Spans, HTTP Client Metrics
Rediscala 1.8+ N/A Database Client Spans
Redisson 3.0+ N/A Database Client Spans
RESTEasy 3.0+ N/A Provides http.route [2], Controller Spans [3]
Restlet 1.0+ opentelemetry-restlet-1.1,
opentelemetry-restlet-2.0
HTTP Server Spans, HTTP Server Metrics
RMI Java 8+ RPC Client Spans, RPC Server Spans
RxJava 1.0+ opentelemetry-rxjava-1.0,
opentelemetry-rxjava-2.0,
opentelemetry-rxjava-3.0,
opentelemetry-rxjava-3.1.1
Context propagation
Scala ForkJoinPool 2.8+ N/A Context propagation
Servlet 2.2+ N/A HTTP Server Spans, HTTP Server Metrics
Spark Web Framework 2.3+ N/A Provides http.route [2]
Spring Batch 3.0+ (not including 5.0+ yet) N/A none
Spring Boot opentelemetry-spring-boot-resources none
Spring Cloud AWS 3.0+ N/A Messaging Spans
Spring Cloud Gateway 2.0+ N/A Provides http.route [2]
Spring Core 2.0+ N/A Context propagation
Spring Data 1.8+ N/A none
Spring Integration 4.1+ (not including 6.0+ yet) opentelemetry-spring-integration-4.1 Messaging Spans
Spring JMS 2.0+ N/A Messaging Spans
Spring Kafka 2.7+ opentelemetry-spring-kafka-2.7 Messaging Spans
Spring RabbitMQ 1.0+ N/A Messaging Spans
Spring RestTemplate 3.1+ opentelemetry-spring-web-3.1 HTTP Client Spans, HTTP Client Metrics
Spring RMI 4.0+ N/A RPC Client Spans, RPC Server Spans
Spring Scheduling 3.1+ N/A none
Spring Web MVC 3.1+ opentelemetry-spring-webmvc-5.3,
opentelemetry-spring-webmvc-6.0
HTTP Server Spans, HTTP Server Metrics, Provides http.route [2], Controller Spans [3]
Spring Web Services 2.0+ N/A none
Spring WebFlux 5.3+ opentelemetry-spring-webflux-5.3 HTTP Client Spans, HTTP Client Metrics, HTTP Server Spans, HTTP Server Metrics, Provides http.route [2], Controller Spans [3]
Spymemcached 2.12+ N/A Database Client Spans
Tomcat JDBC Pool 8.5+ N/A Database Pool Metrics
Twilio 6.6+ (not including 8.x yet) N/A none
Undertow 1.4+ N/A HTTP Server Spans, HTTP Server Metrics
Vaadin 14.2+ N/A Provides http.route [2], Controller Spans [3]
Vert.x HttpClient 3.0+ N/A HTTP Client Spans, HTTP Client Metrics
Vert.x Kafka Client 3.6+ N/A Messaging Spans
Vert.x Redis Client 4.0+ N/A Database Client Spans
Vert.x RxJava2 3.5+ N/A context propagation only
Vert.x SQL Client 4.0+ N/A Database Client Spans
Vert.x Web 3.0+ N/A Provides http.route [2]
Vibur DBCP 11.0+ opentelemetry-vibur-dbcp-11.0 Database Pool Metrics
XXL-JOB 1.9.2+ N/A none
ZIO 2.0+ N/A Context propagation

[1] Standalone library instrumentation refers to instrumentation that can be used without the Java agent.

[2] Provides http.route: Provides route-based span name for existing SERVER span. If applicable, provides http.route span and metric attribute on existing SERVER span and metrics.

[3] Controller Spans are INTERNAL spans capturing the controller and/or view execution. See Suppressing controller and/or view spans.

[4] Newer versions of the library have telemetry built-in.

[5] Doesn't currently support capturing HTTP/2 traffic.

Application Servers

These are the application servers that the smoke tests are run against:

Application server Version JVM OS
Jetty 9.4.53 OpenJDK 8, 11, 17, 21, 23
OpenJ9 8, 11, 17, 21, 23
ubuntu-latest, windows-latest
Jetty 10.0.19, 11.0.19 OpenJDK 11, 17, 21, 23
OpenJ9 11, 17, 21, 23
ubuntu-latest, windows-latest
Jetty 12.0.6 OpenJDK 17, 21, 23
OpenJ9 17, 21, 23
ubuntu-latest, windows-latest
Open Liberty 20.0.0.12 OpenJDK 8, 11
OpenJ9 8, 11
ubuntu-latest, windows-latest
Open Liberty 21.0.0.12, 22.0.0.12 OpenJDK 8, 11, 17
OpenJ9 8, 11, 17
ubuntu-latest, windows-latest
Open Liberty 23.0.0.12 OpenJDK 8, 11, 17, 20
OpenJ9 8, 11, 17, 20
ubuntu-latest, windows-latest
Payara 5.2020.6, 5.2021.8 OpenJDK 8, 11
OpenJ9 8, 11
ubuntu-latest, windows-latest
Payara 6.2023.12 OpenJDK 11, 17
OpenJ9 11, 17, 21, 23
ubuntu-latest, windows-latest
Tomcat 7.0.109 OpenJDK 8
OpenJ9 8
ubuntu-latest, windows-latest
Tomcat 8.5.98, 9.0.85 OpenJDK 8, 11, 17, 21, 23
OpenJ9 8, 11, 17, 21, 23
ubuntu-latest, windows-latest
Tomcat 10.1.18 OpenJDK 11, 17, 21, 23
OpenJ9 11, 17, 21, 23
ubuntu-latest, windows-latest
TomEE 7.0.9, 7.1.4 OpenJDK 8
OpenJ9 8
ubuntu-latest, windows-latest
TomEE 8.0.16 OpenJDK 8, 11, 17, 21, 23
OpenJ9 8, 11, 17, 21, 23
ubuntu-latest, windows-latest
TomEE 9.1.2 OpenJDK 11, 17, 21, 23
OpenJ9 11, 17, 21, 23
ubuntu-latest, windows-latest
Websphere Traditional 8.5.5.22, 9.0.5.14 IBM JDK 8 Red Hat Enterprise Linux 8.4
WildFly 13.0.0.Final OpenJDK 8
OpenJ9 8
ubuntu-latest, windows-latest
WildFly 17.0.1.Final, 21.0.0.Final OpenJDK 8, 11, 17, 21
OpenJ9 8, 11, 17, 21
ubuntu-latest, windows-latest
WildFly 28.0.1.Final, 29.0.1.Final, 30.0.1.Final OpenJDK 11, 17, 21, 23
OpenJ9 11, 17, 21, 23
ubuntu-latest, windows-latest

JVMs and operating systems

These are the JVMs and operating systems that the integration tests are run against:

JVM Versions OS
OpenJDK (Eclipse Temurin) 8, 11, 17, 21, 23 ubuntu-latest
OpenJ9 (IBM Semeru Runtimes) 8, 11, 17, 21, 23 ubuntu-latest

Disabled instrumentations

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 the java.sql.DataSource#getConnection method is called.
  • dropwizard-metrics which might create a very low quality metrics data, because of lack of label/attribute support in the Dropwizard metrics API.

To enable them, add the otel.instrumentation.<name>.enabled system property: -Dotel.instrumentation.jdbc-datasource.enabled=true