监控指标体系:四大黄金信号与关键业务指标选择

大家好,我是老张。做SRE这么多年,踩过的坑比吃过的盐还多。今天咱们聊聊监控指标体系,说白了就是——你到底该监控什么?

很多团队一上来就搞几百个指标,结果告警天天响,真正出问题的时候反而被淹没了。我见过最夸张的,一个业务挂了半小时,告警群里刷了2000多条消息,愣是没人发现核心接口已经超时了。为什么会这样?因为指标选错了。

核心观点:监控不是越多越好,而是越准越好。你只需要关注那些真正能反映系统健康状态的指标。

一、四大黄金信号:Google SRE的经典框架

Google的SRE团队总结了一套方法论,叫「四大黄金信号」。我这些年做过的项目,不管是大厂还是创业公司,这套框架基本都能套用。你想想看,一个系统再复杂,归根结底不就是这四件事吗?

1. 延迟(Latency)

延迟就是请求从发出到收到响应的时间。说白了,用户等得久不久。

我个人的习惯是,把延迟拆成两部分看:

  • 服务端延迟:请求到达服务到处理完成的时间
  • 网络延迟:数据在网络中传输的时间

我在项目中遇到过一件事:有个接口的P99延迟突然从200ms飙到2s,但P50还是正常的。一开始大家都觉得是偶发问题,没当回事。结果过了半小时,整个服务雪崩了。后来一查,是某个慢查询把数据库连接池占满了。嗯,这里要注意——只看平均值会骗人,一定要关注高百分位延迟。

实战建议:重点关注P99和P999的延迟。如果P99超过了你SLA的阈值,哪怕P50再低,也要立刻处理。

2. 流量(Traffic)

流量就是系统承受的请求量。QPS、RPS、TPS,这些都是流量指标。

流量监控的核心目的有两个:

  1. 容量规划:流量涨了,你的资源够不够?
  2. 异常检测:流量突然暴增或暴跌,是不是出问题了?

我曾经遇到过一个案例:某电商平台大促期间,流量比平时涨了10倍,但监控只告警了CPU使用率。结果呢?数据库连接池先爆了,然后整个系统挂了。流量监控不只是看QPS,还要看每个下游组件的承载能力。

3. 错误(Errors)

错误包括显式错误(HTTP 5xx)和隐式错误(返回200但内容不对)。

这里有个坑——很多人只监控HTTP状态码。但你想过没有,一个接口返回200,但返回的数据是空的,这算不算错误?当然算!

避坑指南:我曾经因为只监控了HTTP 5xx,漏掉了一个严重的业务错误。那次是支付接口返回了200,但实际支付失败了。用户投诉了一堆,我们才发现。从那以后,我要求所有核心接口必须上报业务错误码。

错误率监控的黄金法则是:

  • 显式错误:HTTP 4xx/5xx,TCP连接失败等
  • 隐式错误:业务逻辑错误、数据校验失败、超时但返回200
  • 基础设施错误:磁盘满、内存OOM、网络丢包

4. 饱和度(Saturation)

饱和度衡量的是系统资源被用到了什么程度。CPU、内存、磁盘、网络带宽、连接池、线程池……这些都是资源。

饱和度监控的精髓在于——找到瓶颈资源。一个系统可能有100个指标,但真正决定性能的往往只有1-2个瓶颈。

我个人的经验是,饱和度告警的阈值不要设得太高。比如CPU到95%才告警,那时候已经来不及了。我一般设到70%-80%就开始预警,留出缓冲时间。

关键点:饱和度不是「满了才告警」,而是「快满了就告警」。你要给运维团队留出处理时间。

二、如何选择关键业务指标

四大黄金信号是通用框架,但具体到每个业务,指标选择是不一样的。我见过很多团队,直接把四大黄金信号照搬过来,结果发现根本用不上。为什么?因为业务场景不同。

第一步:梳理业务链路

先画出你的核心业务链路。比如一个电商系统:

  • 用户打开App → 首页加载 → 搜索商品 → 查看详情 → 加入购物车 → 下单 → 支付

每个环节都有对应的技术指标。但你不能全监控,要挑出最关键的。

第二步:定义SLA/SLO

没有SLA,你都不知道什么算「正常」。我建议每个核心接口都定义三个指标:

指标 目标值 告警阈值
延迟P99 < 200ms > 500ms
错误率 < 0.1% > 1%
可用性 99.99% < 99.9%

第三步:选择「北极星指标」

每个业务只能有1-2个北极星指标。什么是北极星指标?就是那个最能反映业务健康度的指标。

举个例子:

  • 支付系统:支付成功率
  • 搜索系统:搜索结果返回时间
  • 视频平台:首帧加载时间
  • IM系统:消息送达率

我的经验:北极星指标一定要和业务方对齐。我曾经帮一个团队选指标,技术团队选了「接口延迟」,但业务方关心的是「用户下单成功率」。这两个指标有时候是冲突的——接口延迟低不代表下单成功。最后我们统一了「下单成功率」作为北极星指标。

三、知识体系总览

下面这张图是我自己画的,把四大黄金信号和业务指标选择的关系梳理清楚了。你一看就明白。

监控指标体系知识框架 四大黄金信号 延迟 流量 错误 饱和度 关键业务指标选择 梳理业务链路 定义SLA/SLO 选择北极星指标 映射到 核心原则:从技术指标映射到业务指标 不要为了监控而监控,每个指标都要回答一个业务问题 实战示例:电商系统指标映射 技术指标:接口延迟P99 → 业务指标:用户下单成功率 技术指标:数据库连接池饱和度 → 业务指标:订单创建成功率 技术指标:支付接口错误率 → 业务指标:支付成功率 技术指标:CDN带宽饱和度 → 业务指标:页面加载时间

四、总结一下

四大黄金信号是监控的骨架,关键业务指标是监控的灵魂。没有骨架,监控是散的;没有灵魂,监控是空的。

我最后想说的是——不要追求完美。很多团队花几个月设计监控指标体系,结果上线后发现根本用不上。我的建议是:先选3-5个核心指标跑起来,然后根据实际效果不断迭代。监控是活的,不是死的。

一句话记住:监控指标不是越多越好,而是越准越好。每个指标都要能回答一个问题——「系统现在健康吗?」


公众号:蓝海资料掘金营,微信deep3321