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

您可以通过指定静态配置文件的方式来控制 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。您可以在ARMS控制台接入中心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。您可以在ARMS控制台接入中心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探针