SaveTraceAppConfig - 应用监控自定义设置

进行应用监控的自定义设置(如调用链采样设置、Agent开关等)。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用前面加 * 表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
arms:SaveTraceAppConfignone
*TraceApp
acs:arms:{#regionId}:{#accountId}:traceapp/{#Pid}

请求参数

名称类型必填描述示例值
Pidstring

应用 ID。

在 ARMS 控制台的应用监控>应用列表页面单击目标应用名称。此时浏览器地址栏中的 URL 即包含应用的 pid,格式为 pid=xxx。由于浏览器进行了编码,因此需要对 pid 稍作修改。例如,如果 URL 中包含的 pid 为 xxx%4074xxx,则需要将%40 替换为@,即:xxx@74xxx。

a2n80plglh@745eddxxx
Settingsarray<object>

自定义设置列表。

object

自定义设置列表。

Keystring

自定义设置,各设置的详细字段见下文补充说明。

sampling.enable
Valuestring

自定义设置,各设置的详细字段见下文补充说明。

true

采样设置

Key字段说明Value
sampling.rate固定比例采样采样率0~100 之间,默认为 10。
sampling.useSamplingStrategyV2是否使用自适应采样取值:
- true:开启自适应采样。
- false(默认):关闭自适应采样。
sampling.v2config.spanNames4FullSampleStr全采样接口名示例: "/api/v1/user"。
sampling.v2config.spanNamePrefixes4FullSampleStr全采样接口前缀-
sampling.v2config.spanNameSuffixes4FullSampleStr全采样接口后缀-

探针开关设置

Key字段说明Value
enable探针开关取值:
- true:开启监控。
- false(默认):关闭监控。
akka.enable插件开关取值:
- true(默认)
- false
cassandra.enable插件开关取值:
- true(默认)
- false
dubbo.enable插件开关取值:
- true(默认)
- false
elasticsearch.enabled插件开关取值:
- true(默认)
- false
elasticjob.enable插件开关取值:
- true(默认)
- false
googlehttpclient.enable插件开关取值:
- true(默认)
- false
grpc.enable插件开关取值:
- true(默认)
- false
hsf.enable插件开关取值:
- true(默认)
- false
httpclient3.enable插件开关取值:
- true(默认)
- false
httpclient4.enable插件开关取值:-
 true(默认)
- false
influxdb.enable插件开关取值:
- true(默认)
- false
jdbc.druid.enable插件开关取值:
- true(默认)
- false
jdbc.hikaricp.enable插件开关取值:
- true(默认)
- false
jdkhttp.enable插件开关取值:
- true(默认)
- false
jetty.enable插件开关取值:
- true(默认)
- false
liberty.enable插件开关取值:
- true(默认)
- false
mongodb.enable插件开关取值:
- true(默认)
- false
memcached.enable插件开关取值:
- true(默认)
- false
mysql.enable插件开关取值:
- true(默认)
- false
netty.enable插件开关取值:
- true(默认)
- false
okhttp.enable插件开关取值:
- true(默认)
- false
oracle.enable插件开关取值:
- true(默认)
- false
postgresql.enable插件开关取值:
- true(默认)
- false
play.enable插件开关取值:
- true(默认)
- false
quartz.enable插件开关取值:
- true(默认)
- false
redis.enable插件开关取值:
- true(默认)
- false
redis.redisson.enable插件开关取值:
- true(默认)
- false
lettuce.enable插件开关取值:
- true(默认)
- false
reactor.enable插件开关取值:
- true(默认)
- false
rabbitmq.client.enable插件开关取值:
- true(默认)
- false
kafka.enable插件开关取值:
- true(默认)
- false
onsclient.enable插件开关取值:
- true(默认)
- false
rxjava.enable插件开关取值:
- true(默认)
- false
schedulerx.enable插件开关取值:
- true(默认)
- false
servlet.enable插件开关取值:
- true(默认)
- false
spring.enable插件开关取值:
- true(默认)
- false
springBean.enable插件开关取值:
- true(默认)
- false
tomcat.enable插件开关取值:
- true(默认)
- false
vertx.enable插件开关取值:
- true(默认)
- false
weblogic.enable插件开关取值:
- true(默认)
- false
undertow.enable插件开关取值:
- true(默认)
- false
motan.enable插件开关取值:
- true(默认)
- false
ning.asynchttpclient.enable插件开关取值:
- true(默认)
- false
xxljob.enable插件开关取值:
- true(默认)
- false
mybatis.enable插件开关取值:
- true(默认)
- false

应用日志关联配置

Key字段说明Value
logging.enable关联业务日志与 TraceId 开关取值:
- true(默认):开启关联业务日志与 TraceId 开关。
- false:关闭关联业务日志与 TraceId 开关。
开启后业务日志中会自动生成调用链的 TraceId。
logging.injectTraceId2Log.enable是否自动往用户日志注入 TraceId取值:
- true
- false(默认)
logging.injectSpanId2Log.enable是否自动往用户日志注入 SpanId取值:
- true
- false(默认)
logging.inject2MDC.enable是否往用户 MDC 放置 Trace 上下文取值:
- true
- false(默认)
SLS.bindType关联类型取值:
- logstore
- storeview
SLS.project当前区域业务日志的 project当前区域业务日志的 project。
SLS.logStore当前区域业务日志的 logstore当前区域业务日志的 logstore。
SLS.index当前区域业务日志的关联索引取值:
- 当指定全文索引时,不传。
- 指定字段索引时,取值为相应的字段名。例如:SLS.index: tag。 字段索引及全文索引的区别,请参见配置索引。
SLS.storeViewStoreView 名称当前区域业务日志的 StoreView。

URL 收敛设置

Key字段说明Value
convergence.enable收敛 URL取值:
- true(默认):开启收敛 URL。
- false:关闭收敛 URL。
convergence.minServerSize收敛阈值默认 1000,大于此阈值即进行收敛。
convergence.pattern收敛规则正则表达式可使用正则表达式设置收敛规则,多个正则表达式之间以英文逗号(,)分隔,直接填写 URL 原文表示不收敛此 URL,例如:/service/(.*?)/demo。

Arthas 监控

Key字段说明Value
arthas.enableArthas 开关取值:
- true(默认):开启 Arthas 开关。
- false:关闭 Arthas 开关。
arthas.enableIps生效实时 IP配置启用 Arthas 诊断的 IP,如果填写,Arthas 诊断仅对特定 IP 有效,不填写则默认对所有 IP 生效。多个 IP 请使用英文逗号(,)分割。

持续性能剖析设置

Key字段说明Value
cp.enable持续剖析开关取值:
- true:开启持续剖析开关。
- false:关闭持续剖析开关。
该开关开启后,需要配置生效 IP 或生效网段。
cp.cpuEnable是否开启 CPU 热点取值:
- true
- false
cp.cpuInterval采样频率,每次线程执行 CPU 耗时达到阈值后进行 CPU 热点方法栈采集。从 4.x 版本探针开始生效。取值范围 1~1000ms,默认值:10ms
cp.allocEnable是否开启内存热点取值:
- true
- false
cp.allocInterval采样阈值,每次线程申请对应大小堆内存后进行内存热点方法栈采集。 从 4.x 版本探针开始生效。取值范围 256~10240KB,默认值:1024KB
cp.wallClockEnable是否开启代码热点取值:
- true
- false
cp.wallClockInterval采样频率,每次线程运行相关时长后进行代码热点方法栈采集。从 4.x 版本探针开始生效。取值范围 1~1000ms,默认值:10ms
cp.allowIPs生效 IP。指定生效的 IP 地址,多个 IP 用英文逗号分隔。示例:10.10.1.1,10.10.1.2
cp.allowNetwork生效网段。3.2.x+版本探针支持 0.0.0.0/0 地址。示例:192.0.0.0/8

信息脱敏设置

Key字段说明Value
sanitizer.enable信息脱敏开关取值:
- true(默认):开启信息脱敏开关。
- false:关闭信息脱敏开关。
sanitizer.keys脱敏规则默认支持如示例规则,对 key 进行直接匹配,以 password 为例,规则等同于正则式 .password.,不分区大小写。多个规则之间以英文逗号分隔。
示例:password,secret,key,token,credentials

接口调用配置

Key字段说明Value
thresholds.interface慢调用阈值默认为 500,单位为 ms。当接口响应时间大于该阈值的时候,该接口会被标记为慢调用。
error.skip错误码过滤,配置的 HTTP 状态码不会被统计为错误调用示例值:"404,403"。
defined.excludeurl无效接口调用过滤支持以英文逗号(,)分隔多个接口调用。
示例:/service/taobao,/service/status。
metrics.prpc.enable接口调用指标是否记录上游接口名取值:
- true(默认)
- false
metrics.ppid.enable接口调用指标是否记录上游应用名取值:
- true(默认)
- false
http.metrics.recordHttpCode接口调用指标是否记录原始状态码取值:
- true
- false(默认)

数据库调用配置

Key字段说明Value
thresholds.sql慢 SQL 阈值。当 SQL 查询的耗时大于该阈值的时候,该查询会被标记为慢 SQL。默认为 500,单位为 ms。
callsql.maxLength采集 SQL 最大保留长度。当 SQL 语句大于该阈值的时候,会被截断。默认为 1024 个字符,最小长度为 256 个字符,最大长度为 4096 个字符。
jdbc.tracesqlbindvalue是否展示 SQL 中的变量绑定值取值:
- true:开启捕获 PrepareStatement 参数绑定变量值开关。
- false(默认):关闭捕获 PrepareStatement 参数绑定变量值开关。
jdbc.tracesqlraw是否展示 SQL 中的常量值取值:
- true
- false(默认)
preparestatement.response.size是否记录 MySql 查询返回值大小取值:
- true
- false(默认)

Trace 上下文传播协议设置

Key字段说明Value
trace.protocol.name首选传播协议可配置为 EagleEye、W3C、Skywalking、Zipkin、Jager。
trace.protocol.strategy传播模式首选传播协议的传播策略,默认未 Unset,可设置为 PriorityUse 或 ForceUse。

消息队列配置

Key字段说明Value
rabbitmq.client.consumer.classes自定义 RabbitMQ 消费者。通过设置自定义消费者的类名或者包含匿名内部消费者的类名,可以看到该消费者的调用链路。多个消费者以英文半角逗号(,)分隔。示例:com.xxx.xxx.RabbitMQConsumer
kafka.consumer.entryPoint自定义 Kafka 消费方法。通过自定义消费方法,可以在通过 Kafka 原生 SDK 消费消息的场景下看到链路以及指标数据。需要设置的自定义消费方法的需要包含一个类型为 org.apache.kafka.clients.Consumer.ConsumerRecord 或者 org.apache.kafka.clients.consumer.ConsumerRecords 的参数。
kafka.enableInjectKafkaHeaderskafka 发送消息自动透传上下文。发送时自动往 Kafka 消息中添加若干个 Header 用于关联发送链路和消费链路。取值:
- true
- false (默认)

探针采集配置

Key字段说明Value
sampling.enable是否采集调用链取值:
- true(默认)
- false
thresholds.limit探针每秒最大链路采集量。保护性手段,防止大流量场景下因为链路采集影响业务正常运行。高于默认值会消耗额外的系统资源,请您谨慎操作!默认值:100
control.flow.threshold探针最大可处理 QPS 阈值。每秒请求量超过该阈值后,超出部分请求不再记录 span 和生成指标,探针 4.1.10 版本开始生效。默认值:10000
metricsAndSpan.entranceless.enable是否采集无入口内部调用的数据取值:
- true(默认)
- false
log.report.level探针日志级别DEBUG、INFO、WARN(默认)、ERROR

异常高级过滤配置

Key字段说明Value
exception.fromInstrumentedMethod.enable是否采集插件异常。取值:
- true(默认)
- false
exception.stacktrace同类异常堆栈区分深度默认为 2。基于此堆栈深度识别同类型的异常。修改此配置会造成非预期的统计行为,请您谨慎操作!
exception.whitelist异常过滤白名单默认值:""。
示例值:"java.lang.RuntimeException"。
exception.filterByParentClass异常过滤父类继承。打开后,异常过滤中可配置父类异常。所有继承该父类的异常都会被过滤。该功能仅支持 4.1.6 及以上版本探针。取值:
- true
- false(默认)
exception.advancedWhitelist异常 message 过滤。默认值:""。
示例:[{"exceptionName":"java.lang.RuntimeException","messageStartsWith":"prefixString"},{"exceptionName":"java.lang.NullPointerException","messageEndsWith":"suffixString"},{"exceptionName":"java.lang.IndexOutOfBoundsException","messageContains":"keyword"}]
对于上面配置,当满足下述条件时对应的异常会被过滤:
异常为 java.lang.RuntimeException 且异常 message 以 prefixString 开头。
异常为 java.lang.NullPointerException 且异常 message 以 suffixString 结尾。
异常为 java.lang.IndexOutOfBoundsException 且异常 message 包含 keyword 关键字。

池化监控配置

Key字段说明Value
threadpoolmonitor.enable线程池、连接池监控取值:
- true(默认)
- false
threadpoolmonitor.threadNamePatternExtractStrategy线程池线程名模式提取策略REPLACE_ALL_DIGITAL 代表将线程名中所有数字替换为得到线程名模式。
REPLACE_TAIL_DIGITAL 代表将线程名中结尾的数字替换为得到线程名模式。
threadpoolmonitor.threadPoolUsage.blacklist线程池使用场景过滤。不采集的线程池线使用场景,如果线程池的使用场景匹配上,则该线程池不监控。默认值:""。
示例值:"Tomcat,Vertx"。
threadpoolmonitor.threadNamePattern.blacklist线程池线程名模式过滤。不采集的线程池线程名模式黑名单,如果线程池的线程名模式匹配上,则该线程池不监控。默认值:""。
示例值:"http-nio-*-*, pool-1-thread-*"。

Span Attribute 配置

Key字段说明Value
otel.attribute.enable记录 OTel Spec 约定 attributes取值:
- true
- false(默认)
tags.injection.strategySpan 关联应用标签配置ALL_SPAN 代表对标签会注入到所有的 span 中。
INCOMING_SPAN 代表标签仅会注入到入口 span 中。

高级设置

Key字段说明Value
quantile.enable是否记录分位数指标取值:
- true(默认)
- false
callstack.maxLength方法堆栈最大保留长度默认为 128。超出长度的方法栈将会在采集的时候被截断。高于默认值会消耗额外的系统资源,请您谨慎操作!
compress.enable调用链压缩,是否将重复调用(比如 for 循环)简化。取值:
- true(默认)
- false
param.maxLength请求入参最大展示长度默认为 512。高于默认值会消耗额外的系统资源,请谨慎操作。
thread.match.package异步透传扫描包名。4.x 以上探针自动支持异步透传,无需配置。-
responseInject.enableHTTP 返回结果中包含 TraceId取值:
- true
- false(默认)
metrics.jvm.captureGcCause是否记录 JVM GC Cause 信息。探针需升级到 4.4.0 版本。取值:
- true
- false(默认)

返回参数

名称类型描述示例值
object
Datastring

操作是否成功。

success
RequestIdstring

请求 ID。

78901766-3806-4E96-8E47-CFEF59E4****
Messagestring

返回信息。

message
Codelong

接口状态码:2XX:成功 3XX:重定向 4XX:请求错误 5XX:服务器错误

200
Successboolean

查询是否成功:

  • true:成功。
  • false:失败。
true

示例

正常返回示例

JSON格式

{
  "Data": "success",
  "RequestId": "78901766-3806-4E96-8E47-CFEF59E4****",
  "Message": "message",
  "Code": 200,
  "Success": true
}

错误码

HTTP status code错误码错误信息描述
400ParameterMissingYou must specify the parameter.必选参数缺失
400ParameterTraceAppSettingKeyIllegalThe application configuration key is invalid.应用监控自定配置key非法
400ParameterTraceAppSettingValueIllegalThe application configuration value is invalid.应用监控自定配置value非法
400InternalErrorInterPlease try again. Contact the DingTalk service account if the issue persists after multiple retries.-
404AppNotExistThe application does not exist.应用不存在

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2023-11-06OpenAPI 错误码发生变更查看变更详情
2023-08-14OpenAPI 错误码发生变更查看变更详情
2023-08-03OpenAPI 返回结构发生变更查看变更详情