The thread profiling feature provides thread-level statistics for CPU time and the number of threads by type. It captures and aggregates the method stack of each thread every five minutes to help you accurately trace code execution and quickly identify thread-related issues. If you notice high CPU utilization in your cluster or a large number of slow methods, you can use thread profiling to pinpoint the threads or methods that consume the most CPU resources.
This feature is currently available only for Java applications.
Prerequisites
Application Monitoring provides a new monitoring details page for users who have enabled the new billing plan. For more information about the new billing plan, see Product Billing (New).
If you have not enabled the new billing plan, you can switch to the new monitoring details page by clicking Switch to New Version on the Application List page.
An agent is installed for the application. For more information, see Application Monitoring Access Overview.
Procedure
Log on to the ARMS console. In the left-side navigation pane, choose .
On the Application List page, select a region at the top of the page and then click the name of the target application.
NoteThe icons in the Language column have the following meanings:
: a Java application connected to Application Monitoring.
: a Go application connected to Application Monitoring.
: a Python application connected to Application Monitoring.-: an application connected to Trace Explorer for OpenTelemetry.
In the top navigation bar, choose .
Analyze threads
The list on the left side of the Thread Profiling page displays all threads of the application. You can use the CPU Time statistics to quickly identify abnormal threads. Select an abnormal thread to view the CPU Time and Thread Count charts on the right. These charts help you track trends and determine if the per-minute thread count is excessive.

For an abnormal thread, you can also click Method Stack to view its method stack within a specific time frame. For example, you can examine the method corresponding to a thread in the BLOCKED state. This helps you optimize the specific code segment to reduce CPU utilization.

If you are using agent version 2.7.3.5 or later, ARMS provides more accurate method stack information for thread CPU usage through its Continuous Profiling feature, as shown in the following figure. For more information, see Continuous Profiling.

If no data appears after you click Method Stack, troubleshoot the issue as follows:
If you are using an agent version earlier than 2.7.3.5, go to the tab. In the Thread Settings section, check whether the Thread Profiling Method Stack switch is turned on. If this switch is off, method stack information cannot be recorded. If it is on, the system collects method stack information every five minutes.
If you are using agent version 2.7.3.5 or later, go to the tab. In the Continuous Profiling section, check whether the Global Switch and the CPU hotspot switch are turned on. If these switches are off, the system cannot record method stack information.