首页/云/可观测性速查/四大黄金指标:延迟、流量、错误、饱和度
监控体系与方法40 条

四大黄金指标:延迟、流量、错误、饱和度

Google SRE 归纳的四类通用监控指标:Latency 延迟、Traffic 流量、Errors 错误、Saturation 饱和度,适用于绝大多数在线服务的监控起步。

可观测性速查云更新于 2026-10-13

四大黄金指标是什么

Google SRE 从大量线上系统的监控实践中归纳出四类通用信号:延迟 Latency、流量 Traffic、错误 Errors、饱和度 Saturation。它们不依赖具体技术栈,任何受理请求的系统都能套用,适合作为新服务监控体系的起步清单。其价值在于用最少的指标覆盖用户可感知的健康度,而不是穷举所有可采集的数值。

基本信息

来源Google SRE Book 第 6 章 Monitoring Distributed Systems
适用对象在线请求型服务;批处理与离线任务需改用任务成功数与时效指标
四个维度延迟、流量、错误、饱和度
选型要点延迟必须区分成功与失败请求,饱和度偏预测性

典型使用场景

  • 新服务监控起步:先落地四类指标,再按需补充业务指标与资源细节
  • 值班告警分级:错误与延迟进电话告警,饱和度进工单或低等级通知
  • 发布回归对比:发布前后比较错误率与 P95/P99 是否劣化
  • 容量评估:流量增长与饱和度曲线的交点决定何时扩容
  • SLO 指标选取:成功率与延迟 SLI 通常直接取自错误与延迟两类信号

四类指标

指标含义度量示例异常特征
Latency 延迟请求耗时分布HTTP P95 耗时(成功与失败分开统计)P95 上抬而 QPS 未涨,常见于下游劣化或资源争抢
Traffic 流量系统承受的请求或数据量每秒请求数、每秒写入字节数突增可能是业务峰值,也可能是重试风暴
Errors 错误请求失败的比例5xx 占比、重试次数、连接被拒数持续高于基线且非发布窗口,需立即定位
Saturation 饱和度资源接近上限的程度CPU 使用率、连接池占用、磁盘队列长度先于延迟劣化出现,属于预测性信号

四类指标的简版 PromQL 实现

四类指标的简版 PromQL 实现
# 流量:每秒请求数
sum by (job) (rate(http_requests_total[5m]))

# 延迟 P95:先按 le 聚合桶再算分位
histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket{job="api"}[5m])))

# 错误比例:5xx 占全部请求
sum(rate(http_requests_total{job="api",code=~"5.."}[5m]))
  / sum(rate(http_requests_total{job="api"}[5m]))

# 饱和度:每核负载近似值
node_load1 / count by (instance) (node_cpu_seconds_total{mode="idle"})

常见取舍

做法问题建议
只统计整体延迟快速失败的请求拉低均值,掩盖问题按 code 分组分别统计成功与失败请求
只看平均值长尾体验被平均掉至少看 P95 与 P99
饱和度直接做电话告警多数情况无法立即行动,消耗值班精力作为前置信号进入看板与工单
延迟要分开统计成功与失败请求:快速失败会显著拉低整体延迟曲线,让故障期的服务看起来反而更快。
四类信号覆盖不到业务正确性:接口返回 200 但下单未生效这类问题,需要额外的业务指标(下单成功率、支付转化率)来兜住。

与其他监控方法的关系

四大黄金指标、RED 与 USE 是三个互补的抽象层次:黄金指标给出适用于任何系统的四类通用信号,RED 把它收敛成请求型服务可直接落地的三个查询,USE 则专用于资源侧排查。实践中常见组合是拿黄金指标或 RED 做服务看板骨架,用 USE 检查资源瓶颈,再用业务指标补上正确性。

指标口径要与 SLO 对齐:如果 SLO 用五分钟窗口的成功率,看板与告警也应使用同一窗口与同一分母,否则同一个故障在两处会得出不同结论。

筛选信号的四问

  • 这个指标异常时值班同学能做什么:无法行动的信号放看板,不要做告警
  • 它能否在用户抱怨之前出现:先于用户感知的信号适合做预防性通知
  • 口径是否稳定:含义随版本变动或依赖人工填写的指标很难长期维护
  • 同一含义是否只保留一个指标名:多套命名并存会让看板与告警的取数逐渐分叉

易错点

  • 只监控 CPU/内存这类资源指标:容易漏掉用户可感知的错误与延迟,无法直接判断服务是否可用
  • 不区分成功与失败请求统计延迟:故障期延迟曲线反而显得正常,告警被遮蔽
  • 把四个维度当成全部:业务正确性与数据一致性仍需业务指标补充
  • 只做单实例聚合:缺少 instance 维度时无法判断是个别节点异常还是整体劣化

数据来源与参考

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌