All Products
Search
Document Center

Application Real-Time Monitoring Service:Missing monitoring data for Java applications on JDK 17

Last Updated:Mar 11, 2026

After you connect a Java application running on JDK 17 to Application Real-Time Monitoring Service (ARMS), the ARMS console may show no monitoring data. This issue occurs when the ARMS agent version does not support JDK 17, or when a stale Servlet API dependency interferes with the agent's instrumentation logic.

Cause 1: ARMS agent version does not support JDK 17

JDK 17 support was introduced in ARMS agent V2.8.3. If your agent is older than V2.8.3, it cannot instrument applications running on JDK 17, and no monitoring data is collected.

Version requirements

Application frameworkMinimum ARMS agent version
JDK 17 (without Spring Boot 3.0)V2.8.3
JDK 17 with Spring Boot 3.0V2.9.1.2

ARMS agent V2.8.3 supports JDK 17 but does not support Spring Boot 3.0. Spring Boot 3.0 requires JDK 17. If your application uses Spring Boot 3.0, upgrade to ARMS agent V2.9.1.2 or later.

Solution

Upgrade the ARMS agent to the version that matches your application framework. For the upgrade procedure, see the ARMS agent upgrade documentation.

Verify the fix

  1. Restart your application after the upgrade.

  2. Check the ARMS agent startup logs to verify that the correct agent version is loaded. Look for a log entry that contains the agent version number.

  3. Open the ARMS console and go to your application's monitoring page.

  4. Confirm that monitoring data appears within a few minutes.

Cause 2: stale Servlet API dependency causes incorrect instrumentation

Starting with Spring Boot 3.0, the embedded Apache Tomcat was upgraded to Tomcat 10, which uses Servlet 5.0. This version changed the Servlet API package name from javax to jakarta.

The ARMS agent uses the Servlet API package name to determine where to apply instrumentation. If your application's POM dependencies include an old Servlet API version (one that uses the javax package name) that the application does not actually use, the agent detects the wrong package name and applies instrumentation to javax instead of jakarta. The instrumentation does not take effect and the console shows no monitoring data.

How to check

Inspect your project's pom.xml for Servlet API dependencies that use the javax namespace:

<!-- Example: stale dependency that causes the issue -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>

If your Spring Boot 3.0 application includes a dependency like this but does not use it, the ARMS agent may misidentify the instrumentation target.

Solution

Choose one of the following approaches:

  • Remove the unused Servlet API dependency. Delete the javax.servlet dependency from your pom.xml if your application does not need it. This allows the ARMS agent to detect the correct jakarta package name.

  • Upgrade the ARMS agent to V3.2.0 or later. ARMS agent V3.2.0 fixes this issue by correctly identifying the active Servlet API package name, regardless of stale dependencies in the POM. To upgrade to V3.2.0, submit a ticket.

Verify the fix

  1. Restart your application after removing the unused dependency or upgrading the ARMS agent.

  2. Check the ARMS agent startup logs to confirm the agent loaded successfully.

  3. Open the ARMS console and go to your application's monitoring page.

  4. Confirm that monitoring data such as traces and metrics appears within a few minutes.

Quick reference

SymptomLikely causeFix
No data, ARMS agent older than V2.8.3Agent does not support JDK 17Upgrade to V2.8.3 or later
No data, Spring Boot 3.0 app, ARMS agent older than V2.9.1.2Agent does not support Spring Boot 3.0Upgrade to V2.9.1.2 or later
No data, Spring Boot 3.0 app, stale javax.servlet dependency in POMAgent applies instrumentation to wrong package nameRemove the stale dependency, or upgrade to V3.2.0 or later