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 framework | Minimum ARMS agent version |
|---|---|
| JDK 17 (without Spring Boot 3.0) | V2.8.3 |
| JDK 17 with Spring Boot 3.0 | V2.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
Restart your application after the upgrade.
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.
Open the ARMS console and go to your application's monitoring page.
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.servletdependency from yourpom.xmlif your application does not need it. This allows the ARMS agent to detect the correctjakartapackage 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
Restart your application after removing the unused dependency or upgrading the ARMS agent.
Check the ARMS agent startup logs to confirm the agent loaded successfully.
Open the ARMS console and go to your application's monitoring page.
Confirm that monitoring data such as traces and metrics appears within a few minutes.
Quick reference
| Symptom | Likely cause | Fix |
|---|---|---|
| No data, ARMS agent older than V2.8.3 | Agent does not support JDK 17 | Upgrade to V2.8.3 or later |
| No data, Spring Boot 3.0 app, ARMS agent older than V2.9.1.2 | Agent does not support Spring Boot 3.0 | Upgrade to V2.9.1.2 or later |
No data, Spring Boot 3.0 app, stale javax.servlet dependency in POM | Agent applies instrumentation to wrong package name | Remove the stale dependency, or upgrade to V3.2.0 or later |