Application Real-Time Monitoring Service (ARMS) allows you to customize settings for a Java application on the Custom Configurations tab of the application details page. For example, you can configure a sampling policy and modify agent switch settings.
For information about how to use the ARMS API to configure the preceding settings, see SaveTraceAppConfig.
Prerequisites
Application Monitoring provides a new application details page for users who have enabled the new billing mode. For more information, see Billing (new).
If you have not enabled the new billing mode, you can click Switch to New Version on the Application List page to view the new application details page.
An ARMS agent is installed for the application. For more information, see Application Monitoring overview.
Procedure
Log on to the ARMS console. In the left-side navigation pane, choose .
On the Application List page, select a region in the top navigation bar and click the name of the application that you want to manage.
NoteIf the icon is displayed in the Language column, the application is connected to Application Monitoring. If a hyphen (-) is displayed, the application is connected to Managed Service for OpenTelemetry.
In the top navigation bar, choose
.Configure the parameters and click Save.
Sampling settings
In the Sampling Settings section, you can configure a sampling policy and one or more span names. For more information, see Select a trace sampling mode for the ARMS agent earlier than V3.2.8.
Agent switch settings
In the Probe switch settings section, you can enable or disable application monitoring and select the plug-ins that you want to use.
The modification of the Pause application monitoring switch takes effect immediately without the need to restart the application. If you disable monitoring for an application, the system no longer monitors the application. Proceed with caution. If you modify a plug-in switch, you must manually restart the application to ensure that the modification takes effect.
Thread profiling settings
In the Thread Analysis Settings section, you can turn on or turn off Thread Profiling Main Switch and Periodically Save Local Method Stack Information, and configure a threshold for time-consuming calls.
The listener is triggered only when the response time of a service call reaches the threshold and lasts until the call ends or the amount of time consumed exceeds 15 seconds. The default threshold is 2,000 milliseconds. We recommend that you set the threshold to the 99th percentile of the call response time. For example, if 100 calls are sorted in ascending order by response time, the amount of time consumed by the 99th call is the 99th percentile.
Application log association settings
In the Application log Association configuration section, you can configure a log source that you want to associate with the application. For more information, see Log analysis.
URL convergence settings
In the URL convergence Settings section, you can enable or disable the convergence feature. You can also specify a convergence threshold and convergence rules. URL convergence displays similar URLs as a single object. For example, URLs prefixed with /service/demo/ are displayed as an object. The convergence threshold is the minimum number of URLs that can trigger URL convergence. For example, if the threshold is set to 100, URLs are converged only when 100 URLs meet the regular expression of the rule.
Arthas monitoring
In the Arthas Monitoring section, you can enable or disable the Arthas diagnostics feature. You can also specify the IP addresses on which you want to perform Arthas diagnostics. For more information, see Arthas diagnostics.
Only Application Monitoring Pro Edition supports this feature.
Continuous profiling settings
In the Ongoing Profiling Settings section, you can turn on or turn off Main Switch, CPU Hotspot, Memory Hotspot, and Code Hotspot, and specify effective IP addresses or an effective CIDR block. For more information, see Continuous profiling.
Data masking settings
In the Information desensitization section, you can configure a data masking rule to mask JVM system parameters, Kubernetes YAML configurations, method input parameters, Arthas environment variables, and system variables during data collection. Each element in the rule represents a case-insensitive regular expression. For example, password
indicates the regular expression .*password.*
. Separate multiple elements with commas (,).
When the ARMS agent collects data, the agent masks the data based on the key. If a key matches a regular expression, the corresponding value is masked. As shown in the following figure, if you specify licenseKey in the rule, the value of the -Darms.licenseKey
key is masked.
Operation call settings
In the Interface call configuration section, you can set the threshold for slow calls and adjust the exception whitelist, HTTP status code whitelist, and policy for filtering out invalid operation calls.
Exception Whitelist: Enter the names of the exceptions that you want to ignore. The specified exceptions are excluded from exception charts. Use a regular expression to match the full name of an exception. Separate multiple exception rules with commas (,).
Inherit Exception Filter of Parent Class: If you turn on this switch, you can configure the parent class exceptions in the exception filter. All exceptions that inherit from the parent class can be filtered. This feature is available only for version 4.1.6 and later of the ARMS agent.
HTTP Status Code Whitelist: Enter the operations whose statistics you want to ignore. The specified operations are excluded from the Interface Calls page. The system filters HTTP status codes based on the exact match pattern. Separate multiple HTTP status codes with commas (,).
Filter Invalid Spans: Enter the operations whose statistics you want to ignore. The specified operations are excluded from the Interface Calls page. Use a regular expression to match the full name of an invalid operation. Separate multiple rules with commas (,).
Database call settings
In the Database call configuration section, you can specify a threshold for slow SQL queries and a maximum retention length for collected SQL statements. You can also specify whether to display the variable values and constant values in SQL statements.
Show the variable binding value in SQL: specifies whether to capture the variable values bound to the PrepareStatement parameter. This configuration takes effect without the need to restart the application.
Show the constant values in SQL: specifies whether to truncate the SQL statements without additional processing. This configuration takes effect without the need to restart the application.
Tracing protocol settings
In the Tracing Protocol Settings section, you can select a tracing protocol based on your business requirement. For more information about the tracing protocols supported by ARMS, see Supported tracing protocols.
By default, when a call arrives, the ARMS agent checks for the header of a specific protocol in the order of EagleEye, OpenTelemetry, SkyWalking, Jaeger, and Zipkin. If a protocol header is detected, the agent restores the trace context based on the protocol and subsequent downstream calls will include the detected protocol header. If no protocol header is detected, the EagleEye protocol is used by default.
In this section, you can specify a protocol to be prioritized. After you save the settings, ARMS preferentially checks for the header of the specified protocol. For example, with the following configuration, the ARMS agent checks for the protocol header in the order of Jaeger, EagleEye, OpenTelemetry, SkyWalking, and Zipkin.
You can also choose to use one protocol exclusively. For example, with the following configuration, when a call arrives, the ARMS agent only checks for the Jaeger header. If no Jaeger header is found, the agent does not check for other protocol headers but generates a new trace context.
Advanced settings
In the Advanced Settings section, you can configure advanced settings, such as the operations that you want to exclude and the maximum length of method stacks.
Maximum number of traces collected by the agent per second: the maximum number of requests that can be processed by the agent per second. Default value: 100. The traces that exceed the specified threshold are not collected.
Agent Log Level: You can adjust the print level of agent logs for troubleshooting.
Suspend Trace Collection: You can enable or disable trace collection. If you turn on the switch, traces are not collected.
Quantile Statistics: You can enable or disable quantile statistics.
Maximum length of method stacks that are retained: The default value is 128 and the maximum value is 400.
Stack Depth to Distinguish Same Exception: the stack depth that is used to distinguish exceptions of the same type. In most cases, this parameter is set to the call depth of the first difference.
Maximum length of request parameters that are displayed: The default length is 512 characters and the maximum length is 2,048 characters.
Custom RabbitMQ Consumers: You can specify a class name for a custom consumer or a class name for an anonymous internal consumer to view the traces of the consumer. Separate multiple consumers with commas (,).
Custom Kafka Consumption Method: You can specify a custom consumption method to view the traces and metrics when you consume messages by using the native Kafka SDKs.
Package Names for Asynchronous Propagation: You can add a scan package for asynchronous propagation to the configurations of your application to monitor asynchronous tasks. After a Runnable object, a Callable object, or a Supplier object is created, the corresponding method in the scan package for asynchronous propagation automatically captures the trace context of the current thread. Then, when threads are used in asynchronous mode, the method propagates the captured trace context to the threads. The version of the ARMS agent must be 2.7.1.3 or later. For more information about how to upgrade the ARMS agent, see Upgrade the ARMS agent.
Include Trace ID in HTTP Response: Specify whether to return the eagleeye-traceid field in the response headers for HTTP requests.
Copy application settings to other applications
You can copy the settings of an application to other applications.
Copy a single configuration item to other applications
In the section of the configuration item, click Save and Copy to Other Applications.
If the Current settings are not saved message appears, click OK to save the configuration and then click Save and Copy to Other Applications.
In the dialog box that appears, select a specific application or all other applications and click OK.
Copy all configuration items to other applications
In the lower part of the page, click Save and Copy to Other Applications.
If the Current settings are not saved message appears, click OK to save the configurations and then click Save and Copy to Other Applications.
In the dialog box that appears, select a specific application or all other applications and click OK.
Globally apply application settings
You can globally apply the current application settings. If you create a new application, the settings are used by default.
In the lower part of the page, click Save Current Application Settings as Global Default Configurations.
If the Current settings are not saved message appears, click OK to save the configurations and then click Save Current Application Settings as Global Default Configurations.
In the message that appears, click OK.