修改 Java 探针配置文件及默认上报地域

更新时间:
复制 MD 格式

您可以通过指定静态配置文件的方式来控制 Java 探针的默认配置项。

静态配置文件仅可用于修改部分静态配置及默认配置,配置优先级低于动态配置、Java System Properties 及环境变量。动态配置请参见Java应用自定义配置

4.x 及以上版本的 Java 探针

对于 4.x 及以上版本的 Java 探针,所有的配置文件均内置在了 jar 包中,您可以创建外置的配置文件用于写入一些外部参数。外置配置文件的配置项生效优先级高于 jar 包内置的配置文件,但低于动态配置、Java System Properties 及环境变量。

修改探针配置文件

  1. 创建扩展名为 .properties 的探针配置文件(建议在探针目录下创建),如 my-app.properties。

  2. 按需写入以下配置项,默认值均为空。

    配置项

    含义

    arms.licenseKey

    探针接入信息,接入需要使用的 LicenseKey。您可以在云监控 2.0 控制台接入中心Java 应用监控处获取。也可以通过OpenAPI DescribeTraceLicenseKey获取。

    arms.appName

    探针接入信息,应用名称。

    profiler.tags.env

    监控实例的标签信息,应用环境标签。更多信息,请参见添加并使用标签

    profiler.tags.version

    监控实例的标签信息,应用版本标签。更多信息,请参见添加并使用标签

    profiler.tags.customtags

    监控实例的标签信息,应用其他自定义实例标签。更多信息,请参见添加并使用标签

  3. 在探针启动时,在启动命令中添加 -Dotel.javaagent.configuration-file=/path/to/my-app.properties,或者添加OTEL_JAVAAGENT_CONFIGURATION_FILE=/path/to/my-app.properties环境变量。

    说明
    • 请将/path/to/my-app.properties值替换为配置文件的绝对路径。

    • 启动命令和环境变量同时配置时,启动命令优先生效。

  4. 您可以将修改完的配置文件应用于其他任意一个 4.x 版本探针的接入过程。

修改探针上报地域

如果您的应用是通过 ACK 接入,探针默认的上报地域为 ACK 集群所在地域;如果您的应用为手动接入,探针默认的上报地域为您下载探针时对应 OSS 所在的地域

如果您需要修改探针的上报地域,可以采用以下方法:

方法一

ACK 环境下的应用推荐参考ACK集群如何跨区域上报数据?文档操作。

方法二

通过在启动命令中添加 -Daliyun.javaagent.profileId=cn-hangzhou,或者添加 ALIYUN_JAVAAGENT_PROFILEID=cn-hangzhou 环境变量。

说明
  • 请将cn-hangzhou值替换为任意一个 ARMS 支持的上报地域。

  • 启动命令和环境变量同时配置时,启动命令优先生效。

3.x 版本的 Java 探针

修改探针配置文件

  1. 进入解压后的探针目录,找到 arms-agent.config 文件。

    image

  2. 修改 arms-agent.config 文件中的配置项并保存,或者替换为您准备好的 arms-agent.config 文件。

    展开查看arms-agent.config 文件(示例)

    ########################################################################
    #  您需要手工替换 arms.licenseKey(从界面获取) 及 arms.appName(接入应用名称)
    #
    #  样例:
    #  arms.licenseKey=XXXXXXXXXXXXXXX
    #  arms.appName=Demo-Service
    #
    ########################################################################
    
    arms.licenseKey=
    
    arms.appName=
    
    ########################################################################
    #  以下为 ARMS Agent 的系统默认配置,请勿修改
    ########################################################################
    
    profiler.collector.trace.endpoint=arms-dc-hz.aliyuncs.com
    profiler.collector.metric.endpoint=cn-hangzhou.arms.aliyuncs.com
    profiler.collector.meta.endpoint=arms-dc-hz.aliyuncs.com
    profiler.collector.endpoint=arms-dc-hz.aliyuncs.com
    
    
    profiler.log.report.support=true
    
    profiler.acm.endpoint=addr-hz-internal.edas.aliyun.com
    profiler.acm.tenant=c845a7b4-23a1-4f28-a380-5ab30d8a280f
    profiler.acm.region.id=cn-hangzhou
    
    # MSE上报的Reigon
    profiler.mse.region=cn-hangzhou
    
    
    # Agent自身排查日志等级 ERROR < WARN <  INFO <  DEBUG < TRACE
    # 优先级高的设置将输出优先级低等级的日志
    profiler.agent.logger.level=WARN
    
    # 全局配置:控制Agent是否工作(false为关闭埋点,修改慎重)
    profiler.enable=true
    
    # 全局配置:采样功能是否开启 (false为关闭采集, 修改慎重)
    profiler.sampling.enable=true
    
    # 全局配置:采样率设置规则百分比(100:100%, 50:50%, 20:20%, 10:10%, 5:5%)
    profiler.sampling.rate=10
    
    ###########################################################
    # dubbo                                                   #
    ###########################################################
    profiler.dubbo.enable=true
    
    ###########################################################
    # google-httpclient                                       #
    ###########################################################
    profiler.googlehttpclient.enable=true
    
    ###########################################################
    # ali-hsf                                                 #
    ###########################################################
    profiler.hsf.enable=true
    
    ###########################################################
    # httclient3                                              #
    ###########################################################
    profiler.httpclient3.enable=true
    
    ###########################################################
    # httclient4                                              #
    ###########################################################
    profiler.httpclient4.enable=true
    
    ###########################################################
    # jdk-http                                                #
    ###########################################################
    profiler.jdkhttp.enable=true
    
    ###########################################################
    # jetty                                                   #
    ###########################################################
    profiler.jetty.enable=true
    
    ###########################################################
    # mybatis                                                 #
    ###########################################################
    profiler.mybatis.enable=true
    
    ###########################################################
    # mysql-jdbc                                              #
    ###########################################################
    profiler.mysql.enable=true
    
    ###########################################################
    # okhttp                                                  #
    ###########################################################
    profiler.okhttp.enable=true
    
    ###########################################################
    # oracle-jdbc                                             #
    ###########################################################
    profiler.oracle.enable=true
    
    ###########################################################
    # postgresql-jdbc                                         #
    ###########################################################
    profiler.postgresql.enable=true
    
    ###########################################################
    # redis                                                   #
    ###########################################################
    profiler.redis.enable=true
    
    ###########################################################
    # spring                                                  #
    ###########################################################
    profiler.spring.enable=true
    
    ###########################################################
    # spring-boot                                             #
    ###########################################################
    profiler.springboot.enable=true
    
    ###########################################################
    # tomcat                                                  #
    ###########################################################
    profiler.tomcat.enable=true
    
    ###########################################################
    # mongodb                                                 #
    ###########################################################
    profiler.mongodb.enable=true
    
    ###########################################################
    # lettuce                                                 #
    ###########################################################
    profiler.lettuce.enable=true
    
    ###########################################################
    # GRPC                                                    #
    ###########################################################
    profiler.grpc.enable=true
    
    ###########################################################
    # Thrift                                                  #
    ###########################################################
    profiler.thrift.enable=true
    
    ###########################################################
    # Memcached                                               #
    ###########################################################
    profiler.memcached.enable=true
    
    # 配置无效URL
    
    
    profiler.thresholds.limit=100
    
    profiler.defined.method=
    
    profiler.callstack.maxLength=128
    
    profiler.callsql.maxLength=1024
    
    profiler.tprof.enableThreadProfiler=true
    
    profiler.alibabacloud.metaserver.address=100.100.100.200
    ###########################################################
    # sofarpc                                                 #
    ###########################################################
    profiler.sofa.rpc.enable=true
    
    profiler.exception.stacktrace=2
    
    ###########################################################
    # Tags                                                    #
    ###########################################################
    #profiler.tags.env=prod
    profiler.tags.env=
    
    #profler.tags.version=v1.0
    profiler.tags.version=
    
    #profiler.tags.customtags=key1:value1&key2:value2
    profiler.tags.customtags=
    重要

    配置文件中的其他配置项不建议修改,否则有可能导致采集行为不符合预期。如需修改探针配置,请参考Java应用自定义配置

    配置项

    含义

    默认值

    arms.licenseKey

    探针接入信息,接入需要使用的 LicenseKey。您可以在云监控 2.0 控制台接入中心Java 应用监控处获取。也可以通过OpenAPI DescribeTraceLicenseKey获取。

    arms.appName

    探针接入信息,应用名称。

    profiler.tags.env

    监控实例的标签信息,应用环境标签。更多信息,请参见添加并使用标签

    profiler.tags.version

    监控实例的标签信息,应用版本标签。更多信息,请参见添加并使用标签

    profiler.tags.customtags

    监控实例的标签信息,应用其他自定义实例标签。更多信息,请参见添加并使用标签

    profiler.collector.trace.endpoint

    链路数据上报地址。

    arms-dc-hz.aliyuncs.com

    (以杭州地域为例)

    profiler.collector.metric.endpoint

    指标数据上报地址。

    cn-hangzhou.arms.aliyuncs.com

    (以杭州地域为例)

    profiler.collector.meta.endpoint

    元数据信息上报地址。

    arms-dc-hz.aliyuncs.com

    (以杭州地域为例)

    profiler.collector.endpoint

    其他信息上报地址。

    arms-dc-hz.aliyuncs.com

    (以杭州地域为例)

    profiler.acm.endpoint

    ACM 动态配置监听地址。

    addr-hz-internal.edas.aliyun.com

    (以杭州地域为例)

    profiler.acm.region.id

    ACM 动态配置所在 Region。

    cn-hangzhou

    (以杭州地域为例)

  3. 您可以将修改完的配置文件应用于其他任意一个 3.x 版本探针的接入过程。

修改探针上报地域

如果您的应用是通过 ACK 接入,探针默认的上报地域为 ACK 集群所在地域;如果您的应用为手动接入,探针默认的上报地域为您下载探针时对应 OSS 所在的地域

如果您需要修改探针的上报地域,可以采用以下方法:

方法一(推荐)

ACK 环境下的应用推荐参考ACK集群如何跨区域上报数据?文档操作。

方法二(推荐)

手动安装的探针,请重新获取对应地域的探针安装包,然后重新安装探针。

方法三(不推荐)

修改配置文件中的 profiler.collector.trace.endpoint、profiler.collector.metric.endpoint、profiler.collector.meta.endpoint、profiler.collector.endpoint、profiler.acm.endpointprofiler.acm.region.id 配置项。各地域对应的接入点信息请参见需要开放的域名

重要

由于探针自身包含内网探活逻辑,内网不通会自动切换为公网模式,接入点建议统一按照内网格式填写。

2.x 版本的 Java 探针

ARMS应用监控已不再支持 2.x 版本Java探针,请尽快将探针升级到 2.x 以上版本,升级探针的操作请参见升级ARMS探针