Application Real-Time Monitoring Service (ARMS) automatically instruments supported Java components and frameworks to collect metrics, traces, and spans without code changes. Use this page to verify whether your technology stack is compatible with the ARMS agent.
Supported JDK versions
| JDK version | Description |
|---|---|
| JDK 25 | Supported from ARMS agent 4.7.x. |
| JDK 21 | Supported from ARMS agent 3.1.4. If your JDK version is 21, upgrade the ARMS agent to 3.1.4 or later. |
| JDK 17 | For continuous profiling, use JDK 17.0.9 or later. |
| JDK 11 | For continuous profiling, use JDK 11.0.17 or later. |
| JDK 8 | For Kubernetes deployments, use JDK 8u212 or later. For continuous profiling, use JDK 8u352 or later. |
| JDK 7 | Application Monitoring will stop supporting Java 7 in agent version 3.0.x. Upgrade your JDK as soon as possible. For details, see [Product Change] Application Monitoring to Stop Supporting Java 7. |
Supported JDK distributions
OpenJDK (recommended)
Alibaba Dragonwell (recommended)
Temurin
AdoptOpenJDK
Amazon Corretto
Azul
Java HotSpot VM
Eclipse OpenJ9 has compatibility issues with Application Monitoring and is not recommended.
Frameworks and components supported by the ARMS agent V4.x
The following tables list all frameworks and components supported by the latest ARMS agent 4.x release. Each category heading describes the telemetry data collected for that component type.
LLM clients and frameworks
Collects RED metrics (Rate, Errors, Duration) and spans for large language model API calls, including chat completions, text completions, and embeddings.
| Component | Supported version | Details |
|---|---|---|
| OpenAI Java SDK | 1.1.0+, 2.x+, 3.x+ | Instruments ChatCompletion, Completion, and Embedding calls. |
| Spring AI | 1.x+ | Instruments OpenAI ChatModel, Default ChatClient, and Default ToolManager calls. |
| Spring AI Alibaba | 1.0.0.3+ | Instruments DashScope ChatModel calls. |
Web containers and server frameworks
Collects HTTP-related RED metrics and spans for inbound requests. Thread pool metrics are collected for Tomcat, Jetty, and Undertow.
| Component | Supported version | Additional metrics |
|---|---|---|
| Tomcat | 7.x to 10.x | Thread pool metrics |
| Jetty | 8.x to 11.x | Thread pool metrics |
| Undertow | 1.4.0+ | Thread pool metrics |
| Vert.x | 3.0.0+ | -- |
| Webflux | 5.0.0.RELEASE+ | -- |
| Spring Cloud Gateway | 2.0.0.RELEASE+ | -- |
| Play Framework | 2.4+ | -- |
| WebLogic | 10.3.0 to 12.2.x | -- |
| WebSphere | 9.0+ | -- |
| jFinal | 3.6+ | -- |
| cxf | 3.0+ | -- |
| restlet | 1.1.0+ | -- |
HTTP clients
Collects RED metrics and spans for outbound HTTP requests.
| Component | Supported version |
|---|---|
| Apache HTTP Client | 2.0 to 5.3.1 |
| OkHttp | 2.2+ |
| Java HTTP Client | JDK 11+ |
| Google HTTP Client | 1.19.0+ |
| Async HTTP Client | 1.8 to 2.12.3 |
RPC frameworks
Collects RED metrics and spans for remote procedure calls.
| Component | Supported version |
|---|---|
| Apache Dubbo | 2.7.0+ |
| Alibaba Dubbo | 2.5.10 to 2.6.12 |
| gRPC | 1.6.0+ |
| HSF | 2.2 to 3.0 |
| Motan | 0.3.0+ |
JDBC databases
Collects metrics and spans for database calls made through the JDBC specification, covering create, read, update, and delete (CRUD) operations.
Some database drivers support multiple access methods. ARMS monitors only operations performed through the JDBC interface.
| Component | Supported version |
|---|---|
| MySQL | 5.1.1+ |
| PostgreSQL | 42.0.0+ |
| Oracle | 12.2.0.1+ |
| SQL Server | 6.2.0.jre7+ |
| MariaDB | 1.5.2+ |
| OceanBase | 2.4.0+ |
| PolarDB | 1.0.0+ |
| ClickHouse | 0.1.28+ |
NoSQL databases
Collects metrics and spans for NoSQL database calls.
| Component | Supported version | Additional metrics |
|---|---|---|
| Jedis | 1.4+ | -- |
| Lettuce | 4.0.Final+ | Connection pool metrics, response size metrics |
| Redisson | 3.0 to 3.25.2 | -- |
| MongoDB | 3.1+ | -- |
| Elasticsearch | 5.0+ | HTTP access only. TCP access is not supported. |
| HBase | 2.0 to 3.0 | -- |
| Cassandra | 3.0+ | -- |
| InfluxDB | 2.7 to 2.23 | -- |
| Memcached | 2.12.0 to 2.12.3 | -- |
Messaging systems
Collects RED metrics and spans for message producers and consumers. Message latency metrics are collected for RocketMQ and Alibaba Cloud ONS.
| Component | Supported version | Scope |
|---|---|---|
| Kafka | 0.11.0.0+, 1.x+, 2.x+, 3.x+ | Producer and consumer |
| RocketMQ Java Client | 4.4.0, 4.5.1+, 5.x+ | Producer and consumer, plus message latency |
| RocketMQ Java Client V5 | 5.0.0+ | Producer and consumer, plus message latency |
| RabbitMQ | 4.x+ | Producer and consumer, plus Channel and Command operation spans |
| Alibaba Cloud ONS | 1.7.0.Final+, 2.0.0.Final+ | Producer and consumer, plus message latency |
| Alibaba Cloud MNS SDK | 1.3.0+ | Producer and consumer |
| Spring-Kafka | 2.7.0+ | Consumer (Message Listener). Disables underlying Kafka instrumentation to prevent duplicate spans. |
| Qpid JMS Client | 0.49.0+ | Consumer only |
| Eclipse Paho Client MQTTv3 | 1.0.2+ | Consumer only |
Scheduled tasks
Collects RED metrics and spans for scheduled task executions.
| Component | Supported version |
|---|---|
| XXLJob | 2.0.2+ |
| Spring Scheduled | 3.1.0.RELEASE+ |
| SchedulerX | 1.2.1 to 1.11.6 |
| ElasticJob | 3.0.0 to 3.0.4 |
Log frameworks
Injects the EagleEye-TraceID into the log context for trace-log correlation and collects log volume metrics.
| Component | Supported version |
|---|---|
| Log4j | 1.2+ |
| Log4j2 | 2.0+ |
| Logback | 1.0.0 to 1.2.3 |
Database connection pools
Collects connection pool metrics, including active connections, idle connections, and wait times.
| Component | Supported version | Details |
|---|---|---|
| Druid | 1.0.25+ | Also collects spans for connection acquisition operations. |
| HikariCP | 3.0.0+ | -- |
| C3P0 | 0.9.5+ | -- |
| DBCP | 2+ | -- |
| MyBatis | 3.1.0+ | Collects spans for MyBatis operations. |
Spring framework instrumentation
| Component | Supported version | Function |
|---|---|---|
| Spring | 4.1.0.RELEASE+ | Instruments the request dispatch layer to extract HTTP request routes. |
| Spring-Bean | 4.1.0.RELEASE+ | Instruments each public method in Spring-managed beans and generates a span. |
Frameworks and components supported by the ARMS agent V3.x
The following table lists components supported by the latest ARMS agent 3.x release.
| Category | Component | Supported version |
|---|---|---|
| Web container | Tomcat | 7.x to 10.x |
| Jetty | 8.1.x to 11.0.x | |
| Play Framework | 2.2.x to 2.8.x | |
| WebLogic | 10.3.x to 12.2.x | |
| Undertow | 1.4.x to 2.2.x | |
| Vert.x | 3.3.x+ | |
| Reactor Netty | 0.7.x+ | |
| Webflux | 5.0.x+ | |
| HTTP client | Apache HttpClient | 3.0.x+ |
| Google HTTP Client | 1.19.x+ | |
| OkHttp/OkHttp3 | 2.1.x to 4.11.x | |
| Spring Web (RestTemplate) | -- | |
| AsyncHttpClient | 2.0.x to 2.12.x | |
| Spring | Spring MVC | 3.0.5.RELEASE+ |
| Spring Scheduled | 3.1.0.RELEASE+ | |
| Spring Cloud | Hystrix | 1.0.x to 1.5.x |
| Feign | 9.0.x to 12.4.x | |
| Spring Webflux | 5.0.x to 6.0.x | |
| Spring Cloud Gateway | 2.1.x to 4.0.x | |
| RPC framework | Dubbo | 2.4.x+ |
| Ali-HSF (High Speed Framework) | 2.2.x+ | |
| gRPC | 0.7.x to 1.56.x | |
| Thrift | 0.1.x to 0.18.x | |
| JDBC | MySQL Connector | 5.0.x+ |
| PostgreSQL JDBC Driver | 42.1.x+ | |
| Microsoft JDBC Driver for SQL Server | 6.4.x to 12.2.x | |
| MariaDB Java Client | 1.5.x to 3.1.x | |
| Oracle ojdbc | 7, 8, 10, 14 | |
| PolarDB | 1.1.2+ (supported by the ARMS agent V4.x and later) | |
| Sharding-JDBC | 4.0.x to 4.1.x | |
| Druid | 1.0.x+ | |
| Hikari-CP | 2.3.x+ | |
| MyBatis | 3.1.x to 3.5.x | |
| MyBatisPlus | 1.0.x to 1.7.x | |
| NoSQL | Jedis | 2.x to 4.x |
| Lettuce | 5.2.x+ | |
| Redisson | 2.5.x+ | |
| Memcached | 2.8.x to 2.12.x | |
| MongoDB Java Driver | 3.x | |
| Spring Data MongoDB | 2.0.x to 3.4.x | |
| Elasticsearch Rest Client | 5.x to 7.x | |
| Elasticsearch Rest High Level Client | 6.x to 7.x | |
| ClickHouse JDBC Driver | 0.3.x to 0.4.x | |
| InfluxDB | -- | |
| Messaging | RocketMQ Java Client | 4.4.0, 4.5.1+, 5.x+ |
| RocketMQ Java Client V5 | 5.x+ | |
| Spring for Apache RocketMQ | 2.0.2+ | |
| Alibaba Cloud ONS | 1.7.0.Final+, 2.0.0.Final+ | |
| RabbitMQ Java Client | 4.x+ | |
| Kafka Client | 0.11.0.0+, 1.x+, 2.x+, 3.x+ | |
| Scheduled task | XXLJob | 2.0.x to 2.4.x |
| ElasticJob | 2.0.x to 2.1.x | |
| SchedulerX | 1.2.x to 1.5.x | |
| Spring Scheduled | 3.2.x to 5.3.x | |
| Async/reactive | SpringAsync | 4.0.x to 5.3.x |
| RxJava | 2.0.x to 3.1.x | |
| Reactor | 3.0.x to 3.5.x | |
| Log framework | Log4j | 1.2.16 to 1.2.17 |
| Log4j2 | 2.0 to 2.20.0 | |
| Logback | 1.0.13 to 1.4.8 |
Custom instrumentation for unsupported components
If your application uses a component not listed above, use the OpenTelemetry SDK to add custom instrumentation. For instructions, see Add custom instrumentation to traces using the OpenTelemetry SDK for Java.