全部产品
Search
文档中心

应用实时监控服务ARMS:【探针升级】ARMS应用监控探针4.x版本升级公告

更新时间:Dec 23, 2024

ARMS 4.x及之后版本探针基于OpenTelemetry Java Agent重新构建,全面拥抱开源,100%覆盖老探针功能,但是对部分功能有一定细微调整。本文介绍新版本探针的变动点和影响,并说明数据上报增量问题。

变动的功能点和影响

  • 默认关闭对Spring托管的Bean方法埋点,目前只会针对Controller的方法埋点。

    可能的风险:

    • 升级后调用链方法栈中无法看到@Service、@Component注解的类方法。

    • 在@Service、@Component等注解的类方法中抛出的异常无法被监控到。

  • 线程池监控和连接池监控指标名调整,详情请参见线程池和连接池监控

    可能的风险:

    • 如果已在应用监控告警规则中配置线程池监控告警,探针升级后,需要重新配置告警规则。

      创建应用监控告警规则页面选择指标类型新版线程池监控

      image

    • 如果已根据线程池指标配置自定义大盘,探针升级后大盘数据为空。

    • 指标量增加导致按量计费费用增加。

  • 消息延迟监控指标名调整为arms_mq_delay_seconds

    可能的风险:如果已根据消息延迟指标配置自定义大盘,探针升级后大盘数据为空。

  • 异步调用Trace上下文自动透传不用配置包名。

  • RabbitMQ无需自定义消费者、Kafka无需自定义消费方法(已经定义无影响)。

  • 不再支持通过MDC.get("EagleEye-TraceID")方式获取TraceID,但是日志关联TraceID不受影响。

    可能的风险:通过MDC.get("EagleEye-TraceID")方式获取的TraceID为空。

  • 无入口场景下内部调用会生成Span。

    可能的风险:Span数量增长导致按量计费费用增加。

  • 分位数统计从基于Prometheus的Summary算法改为基于线性插值的桶分布方法。

    可能的风险:在实际耗时分布和当前分桶差异较大时,分位数指标会不准确。

  • SpanStatus状态对齐开源。在开源OpenTelemetry标准中,HTTP请求在响应码为4xx、5xx的场景下会被标记为error,其余情况标记为unset(4.x之前版本标记为ok)。

  • 升级至4.x探针后,TraceId会被强制要求为32位字符,和旧版本前端监控不兼容,建议重新接入至新版用户体验监控

  • 4.1.12及之前版本探针当前和JDK 21虚拟线程不兼容,ARMS计划在4.3.x版本完全兼容。如果业务强依赖虚拟线程,建议使用3.x探针版本。

升级4.x版本后数据上报量增加问题说明

从3.x探针升级到4.x探针后,在某些使用场景下,可能导致指标上报量增加,具体情况如下:

  • 无入口场景下的内部调用生成的Span记录导致Span上报量、指标上报量增加。

  • 线程池监控支持用户自定义线程池导致指标量上涨。

  • 连接池监控支持更多连接池类型导致指标量上涨。

  • 接口调用页面的接口上游和接口下游指标在上下游为异步调用时会因为4.x版本支持异步自动透传导致指标量增加。

  • 插件用法支持更加全面导致指标量上涨,典型的是Lettuce插件的用法支持更加全面。