在应用实时监控ARMS中如果我想只对请求比较耗时,或者有错误的 trace 进行采样还有其他的方案?

在应用实时监控ARMS中请问如果我想只对请求比较耗时,或者有错误的 trace 进行采样,还有其他的方案吗?

展开
收起
花开富贵111 2024-04-15 20:02:03 41 分享 版权
阿里云 AI 助理回答

在应用实时监控服务(ARMS)中,如果您希望只对请求比较耗时或者有错误的 Trace 进行采样,除了默认的采样策略外,还可以通过以下方案实现:


1. 使用错慢异常采样策略

ARMS 提供了专门针对错误和慢调用的采样策略,称为错慢异常采样。该策略会根据接口的错误状态或耗时情况自动触发采样。

适用场景

  • 接口报错(如 HTTP 响应码非 200 或方法抛出异常)。
  • 接口内部执行过程中出现异常但未抛出到框架入口埋点。
  • 接口调用耗时超过自定义配置中的慢调用阈值。

配置方式

  1. 登录 ARMS 控制台,在左侧导航栏选择 应用监控 > 应用列表
  2. 选择目标应用,进入 应用配置 > 自定义配置 页面。
  3. 确保 调用链压缩 功能已开启(默认开启)。
  4. 配置慢调用阈值(单位为毫秒),系统会自动对满足条件的 Trace 进行采样。

采样标记

命中错慢异常采样的 Span 会携带以下 Attribute: - sample.reason=s9:接口报错。 - sample.reason=s11:接口内部执行抛出异常。 - sample.reason=s10:接口调用耗时高。


2. 启用分位数统计辅助慢调用识别

如果同时开启了分位数统计功能,当接口调用耗时大于 P99 分位数时,也会被识别为慢调用并触发采样。

操作步骤

  1. 自定义配置 页面中,确保分位数统计功能已开启。
  2. 系统会自动计算接口的 P99 耗时,并将高于该值的调用标记为慢调用。

3. 自定义采样策略

如果上述策略无法完全满足需求,您可以通过自定义采样来指定需要 100% 采样的接口、接口前缀或后缀。

适用场景

  • 某些特定接口的调用量极低,但仍需保证其 Trace 数据被完整记录。
  • 用户希望对某些关键接口进行全量采样。

配置方式

  1. 登录 ARMS 控制台,进入目标应用的 应用配置 > 自定义配置 页面。
  2. 采样设置 区域,添加需要全采样的接口名、接口前缀或后缀。
  3. 单击 保存,修改即时生效。

采样标记

命中自定义采样的 Span 会携带以下 Attribute: - sample.reason=s3:自定义采样。


4. 结合错/慢 Trace 分析功能

ARMS 提供了强大的 错/慢 Trace 分析 功能,可以帮助您快速定位问题根因,并结合采样策略优化数据采集。

功能特点

  • 慢 Trace 分析:分析耗时最长的 1000 条 Trace,展示与慢调用显著相关的 Top 5 维度信息。
  • 错 Trace 分析:随机抽样 1000 条错 Trace 和 1000 条正常 Trace,分析显著性相关的 Top 3 关键特征。

操作步骤

  1. 登录 ARMS 控制台,进入目标应用的 调用链分析 页面。
  2. 错/慢 Trace 分析 页签,设置 耗时对比临界值(如 5000ms)。
  3. 系统会自动筛选出符合条件的 Trace,并提供下钻分析功能。

5. 调整采样模式为自适应采样

自适应采样模式通过动态调整采样策略,能够更好地覆盖错慢调用场景。

核心策略

  • 小流量兜底采样:每个接口每分钟至少保证一条 Trace 被采样。
  • 接口 Top N 采样:对每个接口的有限条目请求进行采样,避免数据规模随流量线性增长。
  • 特定接口全采样:支持用户自定义需要 100% 采样的接口。

配置方式

  1. 登录 ARMS 控制台,进入目标应用的 应用设置 > 自定义配置 页面。
  2. 采样率模式 设置为 自适应采样
  3. 根据需求配置全采样接口。

重要提醒

  • 采样策略的选择需权衡成本与数据完整性:头采样策略(如固定比例采样和自适应采样)通常能保证链路完整,而非头采样策略(如错慢异常采样)可能无法保证链路完整。
  • 确保探针版本符合要求:部分功能(如 Dubbo 错误调用链记录)需要 3.2.x 及以上探针版本支持。
  • 升级探针版本以解决兼容性问题:如果链路上下游识别混乱,建议升级到 4.2.x 或更高版本。

通过以上方案,您可以灵活配置 ARMS 的采样策略,确保重点关注的错慢调用 Trace 被有效采集和分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。

还有其他疑问?
咨询AI助理