选指标决定检查有效性
健康检查判什么,决定它是有效防护还是噪音来源。选指标的基本原则是优先选能直接反映用户是否得到服务的症状指标,而不是内部实现细节;同时要求该指标在正常与异常区间有明确分界,采集代价可控。常用框架有两类:面向对外服务的四黄金信号,面向资源与硬件的 USE 方法。
基本信息
| 常用框架 | 四黄金信号(延迟、流量、错误、饱和度) |
|---|---|
| 资源侧框架 | USE 方法(使用率、饱和度、错误) |
| 优先级别 | 用户可感知的症状高于内部原因 |
| 判据要求 | 正常与异常区间可分,抖动不会越界 |
| 数量控制 | 每类目标保留少量稳定指标,避免堆砌 |
典型使用场景
- 对外服务:选请求成功率与时延分位,直接对应体验,出问题必然被触发
- 资源层:用使用率与饱和度识别将满未满的拐点,早于故障发生
- 依赖项:对数据库、缓存、消息队列单独设检查项,避免定位被拖延
- 存量型对象:磁盘、连接池、线程池这类单调逼近上限的指标必须纳入
- 关键事务:为登录、下单设端到端探测,覆盖整条链路而非单点进程
指标类型与适用位置
| 指标类型 | 常见例子 | 适用位置 |
|---|---|---|
| 症状指标 | 成功率、时延分位 | 对外服务健康检查首选 |
| 资源指标 | CPU、内存、连接数 | 容量与瓶颈判断 |
| 饱和指标 | 队列长度、排队耗时 | 逼近上限前的预警 |
| 原因指标 | 垃圾回收次数、慢查询数 | 故障定位辅助,不宜单独判定 |
选指标先问三个问题
选指标先问三个问题
# 问一:该指标变差时用户是否已经受影响 是则作为主检查项
# 问二:正常与异常区间是否有明确分界 无分界只能看趋势,不宜设阈值
# 问三:采集是否引入明显开销 开销大则降频或改为抽样
# 例:磁盘水位可设阈值;CPU 瞬时值不宜单独设阈值,应看持续高位与饱和度
# 例:接口成功率可设阈值;平均响应时间须配合分位数一起看四黄金信号适合对外服务,看的是用户视角;USE 方法适合资源与硬件,看的是承载能力。两者互补,但混用时容易出现互相矛盾的判据,因此同一检查项应明确它属于哪一类。
用平均值描述时延会掩盖长尾:绝大多数用户已受影响的故障,平均响应时间仍可能显示正常。时延类指标应使用分位数,并同时观察尾部变化与请求量变化。