Queries all custom settings of an application monitored by Application Monitoring, such as trace sampling settings and agent switches. This operation is applicable only to applications that are monitored by Application Monitoring. It is not applicable to applications that are monitored by Managed Service for OpenTelemetry.
Debugging
Authorization information
The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action
policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:
- Operation: the value that you can use in the Action element to specify the operation on a resource.
- Access level: the access level of each operation. The levels are read, write, and list.
- Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
- The required resource types are displayed in bold characters.
- If the permissions cannot be granted at the resource level,
All Resources
is used in the Resource type column of the operation.
- Condition Key: the condition key that is defined by the cloud service.
- Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
Operation | Access level | Resource type | Condition key | Associated operation |
---|---|---|---|---|
arms:GetTraceAppConfig | get |
|
| none |
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
Pid | string | Yes | The process ID (PID) of the application. You can use one of the following methods to obtain the PID:
Note
| a2n80plglh@745eddxxx |
Response parameters
The following tables describe the JSONPath parameter corresponding to each custom setting. Note: Some custom settings may not be returned in the response because the settings are modified at different points in time. In this case, the default values take effect.
Sampling settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Sampling policy | profiler.sampling.useSamplingStrategyV2 | boolean | Valid values:- true : adaptive sampling- false : fixed-rate sampling | false |
Sampling rate | profiler.sampling.rate | double | 0% to 100%This setting takes effect for fixed-rate sampling. | 10 |
Full sampling span name | profiler.sampling.v2config.spanNames4FullSampleStr | String | The names of the full sampling spans. Separate multiple span names with commas (,). | Empty string |
Full sampling span prefix | profiler.sampling.v2config.spanNamePrefixes4FullSampleStr | String | The prefix of the full sampling spans. | Empty string |
Full sampling span suffix | profiler.sampling.v2config.spanNameSuffixes4FullSampleStr | String | The suffix of the full sampling spans. | Empty string |
Agent switch settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Whether to enable Application Monitoring | profiler.enable | boolean | Valid values:- true : enables Application Monitoring- false : disables Application Monitoring | true |
Dubbo plug-in switch | profiler.dubbo.enable | boolean | Valid values:- true : enables the Dubbo plug-in- false : disables the Dubbo plug-in | true |
MongoDB plug-in switch | profiler.mongodb.enable | boolean | Valid values:- true : enables the MongoDB plug-in- false : disables the MongoDB plug-in | true |
HSF plug-in switch | profiler.hsf.enable | boolean | Valid values:- true : enables the HSF plug-in- false : disables the HSF plug-in | true |
HttpClient 3 plug-in switch | profiler.httpclient3.enable | boolean | Valid values:- true : enables the HttpClient 3 plug-in- false : disables the HttpClient 3 plug-in | true |
HttpClient 4 plug-in switch | profiler.httpclient4.enable | boolean | Valid values:- true : enables the HttpClient 4 plug-in- false : disables the HttpClient 4 plug-in | true |
JDK HTTP plug-in switch | profiler.jdkhttp.enable | boolean | Valid values:- true : enables the JDK HTTP plug-in- false : disables the JDK HTTP plug-in | true |
Jetty plug-in switch | profiler.jetty.enable | boolean | Valid values:- true : enables the Jetty plug-in- false : disables the Jetty plug-in | true |
MyBatis plug-in switch | profiler.mybatis.enable | boolean | Valid values:- true : enables the MyBatis plug-in- false : disables the MyBatis plug-in | true |
MySQL plug-in switch | profiler.mysql.enable | boolean | Valid values:- true : enables the MySQL plug-in- false : disables the MySQL plug-in | true |
OkHttp plug-in switch | profiler.okhttp.enable | boolean | Valid values:- true : enables the OkHttp plug-in- false : disables the OkHttp plug-in | true |
Oracle plug-in switch | profiler.oracle.enable | boolean | Valid values:- true : enables the Oracle plug-in- false : disables the Oracle plug-in | true |
PostgreSQL plug-in switch | profiler.postgresql.enable | boolean | Valid values:- true : enables the PostgreSQL plug-in- false : disables the PostgreSQL plug-in | true |
Redis plug-in switch | profiler.redis.enable | boolean | Valid values:- true : enables the Redis plug-in- false : disables the Redis plug-in | true |
Spring plug-in switch | profiler.spring.enable | boolean | Valid values:- true : enables the Spring plug-in- false : disables the Spring plug-in | true |
Spring Boot plug-in switch | profiler.springboot.enable | boolean | Valid values:- true : enables the Spring Boot plug-in- false : disables the Spring Boot plug-in | true |
Tomcat plug-in switch | profiler.tomcat.enable | boolean | Valid values:- true : enables the Tomcat plug-in- false : disables the Tomcat plug-in | true |
Lettuce plug-in switch | profiler.lettuce.enable | boolean | Valid values:- true : enables the Lettuce plug-in- false : disables the Lettuce plug-in | true |
gRPC plug-in switch | profiler.grpc.enable | boolean | Valid values:- true : enables the gRPC plug-in- false : disables the gRPC plug-in | true |
Thrift plug-in switch | profiler.thrift.enable | boolean | Valid values:- true : enables the Thrift plug-in- false : disables the Thrift plug-in | true |
Hystrix plug-in switch | profiler.hystrix.enable | boolean | Valid values:- true : enables the Hystrix plug-in- false : disables the Hystrix plug-in | true |
RxJava plug-in switch | profiler.rxjava.enable | boolean | Valid values:- true : enables the RxJava plug-in- false : disables the RxJava plug-in | true |
Memcached plug-in switch | profiler.memcached.enable | boolean | Valid values:- true : enables the Memcached plug-in- false : disables the Memcached plug-in | true |
Druid plug-in switch | profiler.jdbc.druid.enable | boolean | Valid values:- true : enables the Druid plug-in- false : disables the Druid plug-in | true |
WebLogic plug-in switch | profiler.weblogic.enable | boolean | Valid values:- true : enables the WebLogic plug-in- false : disables the WebLogic plug-in | true |
ElasticJob plug-in switch | profiler.elasticjob.enable | boolean | Valid values:- true : enables the ElasticJob plug-in- false : disables the ElasticJob plug-in | true |
Elasticsearch plug-in switch | profiler.elasticsearch.enable | boolean | Valid values:- true : enables the Elasticsearch plug-in- false : disables the Elasticsearch plug-in | true |
HikariCP plug-in switch | profiler.jdbc.hikaricp.enable | boolean | Valid values:- true : enables the HikariCP plug-in- false : disables the HikariCP plug-in | true |
InfluxDB plug-in switch | profiler.influxdb.enable | boolean | Valid values:- true : enables the InfluxDB plug-in- false : disables the InfluxDB plug-in | true |
Kafka plug-in switch | profiler.kafka.enable | boolean | Valid values:- true : enables the Kafka plug-in- false : disables the Kafka plug-in | true |
Netty plug-in switch | profiler.netty.enable | boolean | Valid values:- true : enables the Netty plug-in- false : disables the Netty plug-in | true |
Play plug-in switch | profiler.play.enable | boolean | Valid values:- true : enables the Play plug-in- false : disables the Play plug-in | true |
Reactor plug-in switch | profiler.reactor.enable | boolean | Valid values:- true : enables the Reactor plug-in- false : disables the Reactor plug-in | true |
Redisson plug-in switch | profiler.redis.redisson.enable | boolean | Valid values:- true : enables the Redisson plug-in- false : disables the Redisson plug-in | true |
RabbitMQ plug-in switch | profiler.rabbitmq.client.enable | boolean | Valid values:- true : enables the RabbitMQ plug-in- false : disables the RabbitMQ plug-in | true |
SchedulerX plug-in switch | profiler.schedulerx.enable | boolean | Valid values:- true : enables the SchedulerX plug-in- false : disables the SchedulerX plug-in | true |
Undertow plug-in switch | profiler.undertow.enable | boolean | Valid values:- true : enables the Undertow plug-in- false : disables the Undertow plug-in | true |
Vert.x plug-in switch | profiler.vertx.enable | boolean | Valid values:- true : enables the Vert.x plug-in- false : disables the Vert.x plug-in | true |
XXL-JOB plug-in switch | profiler.xxljob.enable | boolean | Valid values:- true : enables the XXL-JOB plug-in- false : disables the XXL-JOB plug-in | true |
ONS Client plug-in switch | profiler.onsclient.enable | boolean | Valid values:- true : enables the ONS Client plug-in- false : disables the ONS Client plug-in | true |
Quartz plug-in switch | profiler.quartz.enable | boolean | Valid values:- true : enables the Quartz plug-in- false : disables the Quartz plug-in | true |
Servlet plug-in switch | profiler.servlet.enable | boolean | Valid values:- true : enables the Servlet plug-in- false : disables the Servlet plug-in | true |
Liberty plug-in switch | profiler.liberty.enable | boolean | Valid values:- true : enables the Liberty plug-in- false : disables the Liberty plug-in | true |
Akka plug-in switch | profiler.akka.enable | boolean | Valid values:- true : enables the Akka plug-in- false : disables the Akka plug-in | true |
Cassandra plug-in switch | profiler.cassandra.enable | boolean | Valid values:- true : enables the Cassandra plug-in- false : disables the Cassandra plug-in | true |
OpenTelemetry plug-in switch | profiler.opentelemetry.enable | boolean | Valid values:- true : enables the OpenTelemetry plug-in- false : disables the OpenTelemetry plug-in | true |
Google HTTP Client plug-in switch | profiler.googlehttpclient.enable | boolean | Valid values:- true : enables the Google HTTP Client plug-in- false : disables the Google HTTP Client plug-in | true |
Ning plug-in switch | profiler.ning.asynchttpclient.enable | boolean | Valid values:- true : enables the Ning plug-in- false : disables the Ning plug-in | true |
Thread profiling settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Thread profiling switch | profiler.tprof.enableJvmThreadStatistic | boolean | Valid values:- true : enables thread profiling- false : disables thread profiling | true |
Periodically save local method stack information | profiler.tprof.enableThreadStackRecorder | boolean | Valid values:- true : enables periodic storage of local method stacks- false : disables periodic storage of local method stacks | false |
Threshold for time-consuming calls | profiler.tprof. threadProfilerSlowInteractionRt | int | Unit: ms. If the duration exceeds the threshold, the local method stack is automatically saved. | 2000 |
Application log association settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Log source | profiler.logSource | String | Valid values:- sls : Simple Log Service | sls |
Automatically associate business logs with trace IDs | profiler.logging.enable | boolean | Valid values:- true : enables the association of business logs with trace IDs- false : disables the association of business logs with trace IDs | true |
Automatically fill in trace IDs in logs | profiler.logging.injectTraceId2Log.enable | boolean | Valid values:- true : enables the automatic filling of trace IDs in logs- false : disables the automatic filling of trace IDs in logsThis setting takes effect for version 4.1.6 or later of the ARMS agent. | true |
Automatically fill in span IDs in logs | profiler.logging.injectSpanId2Log.enable | boolean | Valid values:- true : enables the automatic filling of span IDs in logs- false : disables the automatic filling of span IDs in logsThis setting takes effect for version 4.1.6 or later of the ARMS agent. | true |
Associate Simple Log Service - Region | profiler.SLS.regionId | String | The region where the associated log source resides. | Empty string |
Associate Simple Log Service - Project | profiler.SLS.project | String | The project to which the associated log source belongs. | Empty string |
Associate Simple Log Service - Logstore | profiler.SLS.logStore | String | The Logstore to which the associated log source belongs. | Empty string |
Associate Simple Log Service - Associated index | profiler.SLS.index | String | The index of the associated log source. | Empty string |
URL convergence settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Convergence URL | profiler.convergence.enable | boolean | Valid values:- true : enables the URL convergence feature- false : disables the URL convergence feature | true |
Convergence threshold | profiler.convergence.minServerSize | long | URLs are converged when the threshold is reached. | 1000 |
Convergence rule | profiler.convergence.pattern | String | Each rule is a regular expression.Example: /service/(.*?)/demo .Separate multiple rules with commas (,). | Empty string |
Arthas settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Arthas switch | profiler.arthas.enable | boolean | Valid values:- true : enables the Arthas diagnostics feature- false : disable the Arthas diagnostics feature | false |
IP address effective in real time | profiler.arthas.enableIps | string | The IP addresses for which the Arthas diagnostics feature is enabled. Separate multiple IP addresses with commas (,).An empty string indicates that the Arthas diagnostics feature is enabled for all IP addresses. | Empty string |
Continuous profiling settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Switch | profiler.cp.enable | boolean | Valid values:- true : enables the continuous profiling feature- false : disables the continuous profiling feature* After the switch is turned on, two configuration modes are available, as shown in the following table. | false |
CPU hotspot | profiler.cp.cpuEnable | boolean | Valid values:- true : enables the CPU hotspot feature- false : disables the CPU hotspot feature | false |
Memory hotspot | profiler.cp.allocEnable | boolean | Valid values:- true : enables the memory hotspot feature- false : disables the memory hotspot feature | false |
Code hotspot | profiler.cp. wallClockEnable | boolean | Valid values:- true : enables the code hotspot feature- false : disables the code hotspot feature | false |
Mode | Key | Description | Value |
IP address whitelist | cp.allowIPs | IP address whitelist | The IP addresses of the instances for which continuous profiling is enabled. Separate multiple IP addresses with commas (,).Example: 192.168.0.1,192.168.0.2 |
cp.allowNetwork | CIDR block | Specify an empty string. Otherwise, continuous profiling does not work properly. | |
CIDR block | cp.allowIPs | IP address whitelist | Specify an empty string. Otherwise, continuous profiling does not work properly. |
cp.allowNetwork | CIDR block | The CIDR block of the instances for which continuous profiling is enabled.Example: 192.168.2.0/24/24 |
Data masking settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Data masking switch | profiler.sanitizer.enable | boolean | Valid values:- true : enables the data masking feature- false : disables the data masking feature | true |
Data masking rule | profiler.sanitizer.keys | String | The matching rule for sensitive key-containing words. The matching rule is case-insensitive. Separate multiple IP addresses with commas (,). | true |
Interface call settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Slow request threshold | profiler.thresholds.interface | long | Unit: ms. If the response time is greater than this threshold, the request is marked as slow. | 500 |
Exception whitelist | profiler.exception.whitelist | String | The regular expression that matches the exception names. Exceptions that are hit in the whitelist are not included in the statistics of exception-related charts. Separate multiple rules with commas (,). | Empty string |
Inherit exception filter of parent class | profiler.exception.filterByParentClass | boolean | Valid values:- true : enables the feature- false : disables the featureAfter the feature is enabled, you can configure parent exceptions in exception filtering. This setting takes effect for version 4.1.6 or later of the ARMS agent. | true |
HTTP status code whitelist | profiler.error.skip | String | The HTTP status codes for which you want to ignore errors. The status codes in the whitelist are ignored in the error statistics. Separate multiple status codes with commas (,). | Empty string |
Exclude invalid API calls | profiler.defined.excludeurl | String | The API calls that are ignored. Each rule is a regular expression. Separate multiple status codes with commas (,). | /**/*.jpg,/**/*.png,/**/*.js,/**/*.jpeg,/**/*.pdf,/**/*.xlsx,/**/*.txt,/**/*.docs,/**/*.gif,/**/*.csv |
Database call settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Slow SQL query threshold | profiler.thresholds.sql | long | Unit: ms. If the duration of an SQL query exceeds the threshold, the query is marked as slow. | 500 |
Maximum length of collected SQL statements that are retained | profiler.callsql.maxLength | long | If the value of an SQL statement exceeds the threshold, the SQL statement is truncated. | 1024 |
Show variable values in SQL | profiler.jdbc.tracesqlbindvalue | boolean | Valid values:- true : enables the feature- false : disables the featureIf you turn on this switch, the variable values bound to the PrepareStatement parameter are captured and displayed on the page. Only MySQL is supported. | false |
Show constant values in SQL | profiler.jdbc. tracesqlraw | boolean | Valid values:- true : enables the feature- false : disables the featureAfter the feature is enabled, raw SQL statements are captured. | false |
Tracing protocol settings
Note: The tracing protocol settings take effect only for agent version 4.1.x and later.
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Tracing protocol | profiler.trace.protocol.name | String | Valid values:- Unset : not set- W3C : OpenTelemetry W3C- SkyWalking - Zipkin : Zipkin B3- Jaeger - EagleEye | Unset |
Tracing mode | profiler.trace.protocol. strategy | String | Valid values:- PriorityUse - ForceUse | PriorityUse |
Advanced settings
Setting | JSONPath | Type | Description | Default value |
---|---|---|---|---|
Maximum number of traces collected by the agent per second | profiler.thresholds.limit | int | A protective measure to prevent the normal operation of the business from being affected by trace collection in high traffic scenarios. | 100 |
Maximum length of method stacks that are retained | profiler.callstack.maxLength | int | If the length of a method stack exceeds the specified value, the method stack is truncated when it is collected. This setting is deprecated if the agent version is 4.0.0 or later. | 128 |
Stack depth for the same type of exceptions | profiler.exception.stacktrace | int | The stack depth based on which the system identifies the same type of exceptions. | 2 |
Maximum length of request parameters that are displayed | profiler.param.maxLength | int | The maximum length of request parameters that are displayed. | 512 |
Custom RabbitMQ consumers | profiler.rabbitmq.client.consumer.classes | String | The fully qualified class names of RabbitMQ consumers. Separate multiple consumers with commas (,).This setting is deprecated if the agent version is 4.0.0 or later. | Empty string |
Custom Kafka consumption method | profiler.kafka.consumer.entryPoint | String | The consumption method of the Kafka consumer. This setting is deprecated if the agent version is 4.0.0 or later. | Empty string |
Automatically propagate context when Kafka sends messages | profiler.kafka.enableInjectKafkaHeaders | boolean | Specifies whether to automatically add multiple headers to Kafka messages to associate the sending trace with the consumption trace. This setting is deprecated if the agent version is 4.0.0 or later. | false |
Package name for asynchronous propagation | profiler.thread.match.package | String | When a Runnable, Callable, Supplier under the specified package is created, the trace context is automatically captured and propagated to the new thread. Separate multiple package names with commas (,).This setting is deprecated if the agent version is 4.0.0 or later. | Empty string |
Include trace ID in HTTP response | profiler.responseInject.enable | boolean | Valid values:- true : turns on the switch- false : turns off the switch | false |
Examples
Sample success responses
JSON
format
{
"RequestId": "78901766-3806-4E96-8E47-CFEF59E4****\n",
"Data": "{\"profiler\":{\"enable\":true}}",
"Message": "",
"Code": 200,
"Success": true
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | ParameterPidMissing | You must specify pid. | You must specify pid. |
404 | AppNotExist | The application does not exist. | The application does not exist. |
500 | InternalError | Internal error. Please try again. Contact the DingTalk service account if the issue persists after multiple retries. | Internal error. Please try again. Contact the DingTalk service account if the issue persists after multiple retries. |
For a list of error codes, visit the Service error codes.