基线对比
发现列表上方有两行,把当前视图里的服务和两段同样长的时间相比:- 与上一时段相比:紧挨在时间范围之前的一段;
- 与上周同时段相比:把时间范围往前移七天。
洞察的种类
每项指标单独判断是否突变:
一段时间至少有 20 个请求,它的错误率和 P95 才参与判断。发现会写明现在的值,以及每个基线时间段的值。
发现按严重、警告、建议排序,最多 30 条。建议只说明时间花在哪里,不代表服务不健康。
突变从何时开始
以基线和现在的值之间的中线为界,时间范围内第一个越过中线的时间桶就是突变开始的时间,前提是下一个时间桶也越过中线,并且之后至少一半的时间桶都越过中线。单个异常的时间桶不算突变开始。卡片在发现旁边显示突变开始的时间,鼠标停留时显示精确时间。发现附近的变更
突变和版本变差的发现会列出开始前 30 分钟到开始后 10 分钟内的变更,离开始时间最近的在前,最多五条:- 流水线为该服务或它调用的服务上报的发布、配置变更和功能开关;
- 这段时间里服务的 Span 首次带上、但没有流水线上报的版本,标注为从 Span 观测到。
kind 的发布事件上报,见上报配置变更与功能开关。
洞察显示在哪里
没有值得注意的地方时,卡片会写明。页面的环境和版本筛选同样生效。
让 Mole Agent 调查
点击调查会打开 Mole Agent,就当前看到的内容新建一个会话:
会话会附上该服务,问题填在输入框里,读过、改好之后再发送。拥有
agent.use 的用户才能看到这个按钮。发起会话需要 streams.query,或 _sys 范围内的 sys.telemetry.read,并会为该服务建一条调查记录,见调查。
附上的服务会把以下内容告诉模型,时间为会话的时间范围,没有设置时为最近一小时:
- 每个环境的健康状态和原因、请求数、错误率、P50、P95、P99、Apdex 和版本;
- 上一时段和上周同时段的数据;
- 洞察卡片上最多八条发现,以及它们附近的变更;
- 最多六个调用它的服务,以及最多六个它调用的对象,带健康状态。
get_apm_insights 读取洞察,用 get_apm_blast_radius 读取服务的影响范围。内置的事件排查技能会用到这两个工具,延迟回归技能会先读取该服务的洞察。
事件的影响范围
事件关联到某个服务时,事件详情里有影响范围一节。服务取自标签service.name、service_name、service 或 svc,都没有时取事件的受影响服务。环境取自标签 deployment.environment 或 environment。这一节读取从事件开始前 30 分钟到事件解决时(未解决时到现在)的 APM 服务地图:
每个列表把不健康的放在前面,最多六个。每项写明相隔几层、健康状态,以及它和上一层节点之间的调用次数和失败比例。Topic 和外部端点不再往下展开;经过 Topic 的调用也不会影响到生产者,因为生产者不等待消费者。和上一时段相比已经消失的调用不计入。
在服务地图中查看会打开该环境的 APM 服务地图,并选中该服务。能读取 APM 数据的用户才能看到这一节,读到地图之后才显示。这段时间的服务地图上没有该服务时,这一节会写明。
对 APM 指标设置异常检测告警
异常检测规则可以监控 APM 指标,而不是查询结果。规则窗口内的指标值明显偏离过去几天同一时刻的窗口时触发告警。1
打开异常检测规则编辑器
在服务页或端点抽屉中打开新建告警,选择异常检测告警。编辑器以 APM 指标数据源打开,并预填服务、环境和端点。在告警中新建异常检测规则时,也可以选择这个数据源。
2
选择指标和基线
选择指标,再设置 1 到 30 天的回看天数、算法和灵敏度。开启周季节性后,只比较相同星期几的历史。
3
保存
填写规则名称并创建规则。创建规则需要
alerts.manage。