When a JVM service slows down, there are many possible causes, such as long garbage collection pauses, heap usage nearing its limit, or blocked threads. JVM runtime metrics help you identify which one is responsible.
Trace0 now shows JVM runtime metrics for services running on the JVM, alongside the request metrics you already see for each service. They come from the OpenTelemetry metrics the JVM reports, as defined by the OpenTelemetry semantic conventions for JVM metrics, so services using the OpenTelemetry Java agent report them without any extra setup.
The metrics include heap and non-heap memory per memory pool, garbage collection duration per collector, thread counts by thread state, buffer pool usage, loaded classes, CPU usage, open file descriptors, and more.
Service Instances
Each instance of your service runs its own JVM and reports its own runtime metrics, so you view them one instance at a time. Trace0 identifies each instance from the resource attributes your service reports, such as the ECS Task ARN or Service Instance ID.
To view JVM runtime metrics for one of your services, open the Metrics section, click View more for the service and select an instance from the instance filter. The example below shows the JVM runtime metrics for a Java service running on ECS:
See our JVM Metrics user guide for the full list of metrics and how each one is calculated.
Available via MCP
JVM runtime metrics are also available to your AI agents through the Trace0 MCP server get_application_metrics tool. If the agent doesn’t pass an instance, the response lists the instance IDs it can pass to load the metrics for one instance.