Supported Java libraries and frameworks

Validated libraries and frameworks

The following libraries and frameworks are supported by Observe by Snowflake APM and work with all Observe by Snowflake APM features.

Database Client

Observe by Snowflake supports the following Java database client libraries and services for APM instrumentation:

Library nameSupported versionsTrace ExplorerCatalogService InspectorRED MetricsDatabase StatementsService Maps
JDBCJava 8+✅✅✅✅✅✅
MongoDB Driver>= 3.1✅✅✅✅✅✅ 1️⃣

1️⃣ Service maps are limited due to a context propagation issue in MongoDB drivers.

ORM

Observe by Snowflake supports the following Java ORM libraries and services for APM instrumentation:

Library nameSupported versionsTrace ExplorerCatalogService InspectorRED MetricsDatabase StatementsService Maps
Hibernate>= 3.3✅✅✅✅✅✅

Web / HTTP Server

Observe by Snowflake supports the following Java HTTP server libraries and services for APM instrumentation:

Library nameSupported versionsTrace ExplorerCatalogService InspectorRED MetricsDeploymentsService MapsError & Exception Tracking
Dropwizard>= 0.7✅✅✅✅✅✅✅
Netty>= 3.8✅ 1️⃣✅✅ 1️⃣✅✅✅
Micronaut>= 3.0✅✅✅✅✅✅✅
Quarkus>= 2.16.7✅✅✅✅✅✅✅
Servlet>= 2.2✅✅✅✅✅✅✅
Spring Web MVC>= 3.1✅✅✅✅✅✅✅
Spring WebFlux>= 5.3✅✅✅✅✅✅✅
Vert.x>= 3.0✅ 1️⃣✅✅✅ 1️⃣✅✅✅

1️⃣ Span names may not work correctly with Netty applications. Since Vert.x is built atop Netty, you many encounter similar problems with Vert.x applications.

Other libraries and frameworks supported by OpenTelemetry

The libraries and frameworks in this section are supported by OpenTelemetry but are not certified for compatibility with Observe by Snowflake APM. The OpenTelemetry Java agent instruments all of them without extra setup.

Cache Client

Library nameSupported versionsTrace Explorer
Jedis (Redis)>= 1.4✅
Lettuce (Redis)>= 4.0✅
Rediscala (Redis)>= 1.5✅
Spymemcached (Memcached)>= 2.12✅
Vert.x Redis Client>= 4.0✅

Cloud SDK

Library nameSupported versionsTrace Explorer
AWS Lambda>= 1.0✅
AWS SDK (including SQS, SNS, Lambda)v1: >= 1.10.33, v2: >= 2.2✅
Azure Core>= 1.14✅
Kubernetes Java client>= 7.0✅
Spring Cloud AWS SQS>= 3.0✅
Twilio< 8.0✅

Connection Pool

Library nameSupported versionsTrace Explorer
Alibaba DruidAll versions✅
Apache Commons DBCP>= 2.0✅
c3p0All versions✅
HikariCP>= 3.0✅
Oracle UCPAll versions✅
Tomcat JDBC Pool>= 8.5✅
Tomcat DBCP>= 8.0.3✅
Vibur DBCP>= 11.0✅

Database / Cache

Library nameSupported versionsTrace Explorer
Apache Geode>= 1.4✅
Redisson>= 3.0✅

Database Client

Library nameSupported versionsTrace Explorer
Apache HBase client>= 1.0, < 2.5✅
Cassandra Driver>= 3.0✅
ClickHouse client>= 0.5✅
Couchbase Java client>= 2.0, < 3.0 or >= 3.1✅
Elasticsearch Java API client>= 7.16, < 7.17.20 or >= 8.0, < 8.10✅
Elasticsearch REST Client>= 5.0✅
Elasticsearch Transport Client>= 5.0✅
InfluxDB Java client>= 2.4✅
OpenSearch Java client>= 3.0✅
OpenSearch REST client>= 1.0✅
R2DBC>= 0.9✅
Vert.x SQL Client>= 4.0✅

ORM and Data Access

Library nameSupported versionsTrace Explorer
Hibernate ReactiveAll versions✅
MyBatis>= 3.2✅
Spring Data>= 1.8✅

GenAI

Library nameSupported versionsTrace Explorer
AWS Bedrock Runtime>= 2.25.63✅
OpenAI Java SDK>= 1.1, < 3.0✅

HTTP Client

Library nameSupported versionsTrace Explorer
Apache HTTP Client>= 2.0✅
Armeria>= 1.3✅
AsyncHttpClient>= 1.8✅
Dropwizard Client< 3.0✅
Google HTTP Client>= 1.19✅
Java HTTP ClientJava 11+✅
Jetty HttpClient>= 9.2, < 10 or >= 12.0✅
Jodd HTTP>= 4.1.1✅
OkHttp>= 2.2✅
Play WS>= 1.0✅
Reactor Netty>= 0.7✅
Spring RestTemplate>= 3.1✅
Spring WebClient>= 5.0✅

Messaging

Library nameSupported versionsTrace Explorer
Apache Camel>= 2.19, < 3.0✅
Apache Kafka>= 0.11✅
Apache Kafka Connect>= 2.6✅
Apache Kafka Streams>= 0.11✅
Apache Pulsar>= 2.8✅
Apache RocketMQ>= 4.0✅
JMS>= 1.1✅
NATS>= 2.17.2✅
RabbitMQ Client>= 2.7✅
Reactor Kafka>= 1.0✅
Spring Integration>= 4.1✅
Spring JMS>= 2.0✅
Spring Kafka>= 2.7✅
Spring Pulsar>= 1.0✅
Spring RabbitMQAll versions✅
Vert.x Kafka Client>= 3.5.1✅

GraphQL

Library nameSupported versionsTrace Explorer
GraphQL Java>= 12.0✅

Web / HTTP Server

Library nameSupported versionsTrace Explorer
ActiveJ HTTP>= 6.0✅
Akka HTTP>= 10.0✅
Apache Pekko HTTP>= 1.0✅
Apache ShenYu>= 2.4✅
Apache Struts 2>= 2.1✅
Apache Tapestry>= 5.4✅
Apache Wicket>= 8.0✅
Armeria>= 1.3✅
Avaje Jex>= 3.0✅
Dropwizard Views< 3.0✅
Finagle HTTP>= 23.11✅
Finatra>= 2.9✅
Grails>= 3.0✅
Grizzly>= 2.3✅
GWT>= 2.0✅
Helidon>= 4.3✅
JAX-RS (Jersey, RESTEasy, Apache CXF)>= 0.5✅
JAX-WS (Axis2, Apache CXF, Metro)>= 2.0✅
JavaServer Faces (Mojarra, MyFaces)>= 1.2✅
Javalin>= 5.0✅
Jetty>= 8.0✅
JFinal>= 3.2✅
Ktor>= 1.0✅
Play Framework>= 2.4✅
Ratpack>= 1.4✅
Restlet>= 1.1✅
Spark Web Framework>= 2.3✅
Spring Cloud Gateway>= 2.0✅
Spring Web Services>= 2.0✅
Tapir (Pekko HTTP server)>= 1.7✅
Tomcat>= 7.0.4✅
Undertow>= 1.4✅
Vaadin>= 2.2, < 3.0 or >= 3.1, < 25.0✅
ZIO HTTP>= 3.0✅

Web / RPC

Library nameSupported versionsTrace Explorer
Apache Dubbo>= 2.7✅
Apache Thrift>= 0.13✅
Armeria gRPC>= 1.14✅
gRPC>= 1.6✅
SOFARPC>= 5.4✅

Async and Reactive

Library nameSupported versionsTrace Explorer
Akka Actors>= 2.3✅
Apache Pekko Actors>= 1.0✅
Guava ListenableFuture>= 10.0✅
Hystrix>= 1.4✅
Kotlin Coroutines>= 1.0✅
Project Reactor>= 3.1✅
RxJava>= 2.0.6✅
Scala ForkJoinPool>= 2.8, < 2.12✅
Vert.x RxJava2>= 3.5✅
ZIO>= 2.0✅

Logging

Library nameSupported versionsTrace Explorer
JBoss Log Manager>= 1.1✅
Log4j 1>= 1.2✅
Log4j 2>= 2.0✅
Logback>= 0.9.16✅

Metrics

Library nameSupported versionsTrace Explorer
Dropwizard Metrics>= 4.0✅
Micrometer>= 1.5✅
OSHI>= 5.0✅
Spring Boot Actuator>= 2.0✅

Scheduling and Jobs

Library nameSupported versionsTrace Explorer
Apache ShardingSphere ElasticJob>= 3.0✅
PowerJob>= 4.0✅
Quartz>= 2.0✅
Spring Batch>= 3.0, < 5.0✅
Spring Scheduling>= 3.1✅
XXL-JOB>= 1.9.2✅

Other

Library nameSupported versionsTrace Explorer
Apache Commons Pool>= 2.0✅
Spring Core>= 2.0✅
Spring AOP>= 1.2✅
Spring Security>= 6.0✅

Check your application's libraries

☝️

Public preview feature

You may access and use this preview feature solely for internal evaluation purposes.  Previews are provided as-is. Your use of this preview is subject to the Snowflake Preview Terms located at https://www.snowflake.com/en/legal.


To check the library versions your application uses against these lists, run observe instrumentation audit in your project. See Check OpenTelemetry readiness with the Observe by Snowflake CLI.


Did this page help you?