RED 方法(速率 / 错误 / 延迟)
Google 提出了用于基础设施监控的 USE 方法,但对于面向用户的微服务 API,Netflix 提出了更适合的 RED 方法。
两种方法的核心区别在于:USE 关注资源(CPU/内存/磁盘),RED 关注服务(请求/错误/延迟)。基础设施团队用 USE 发现资源瓶颈,SRE 团队用 RED 衡量服务对用户的影响。
RED 方法概述
Rate(请求速率)
什么是 Rate
Rate 是服务处理的每秒请求数(QPS)。它反映了服务的负载水平。
监控价值
- 容量规划:QPS 是扩缩容的核心依据
- 异常检测:QPS 突然下降可能意味着服务不可达
- AB 测试:不同版本的 QPS 对比
维度分解
告警规则
prometheus-alerts.yml
Errors(错误率)
什么是 Errors
错误率是失败请求占总请求的比例。不同类型错误有不同的含义:
错误率计算
告警规则
prometheus-alerts.yml
错误率 vs 错误数量
Duration(请求延迟)
什么是 Duration
Duration 是单个请求的响应时间。和 Rate/Errors 不同,延迟不是单一数值,而是分布。
分位数选择
延迟监控的关键点
一、区分成功和失败。错误请求往往返回很快(立即失败),如果把快错和慢对混在一起统计,会掩盖真实的慢请求:
二、按接口分解。不同接口的延迟基线不同,混在一起统计无法看出问题:
三、考虑尾延迟。P99 正常不代表所有用户都正常。P99.9 可能更能反映问题:
告警规则
prometheus-alerts.yml
RED 方法的完整仪表盘
Grafana
质量判断标准
读完本节后,你应该能够回答:
- RED 方法和 USE 方法的核心区别是什么?为什么说 RED 更适合微服务 API 监控?
- 在错误率监控中,为什么 4xx 和 5xx 需要分开监控?它们分别反映什么问题?
- 在延迟监控中,为什么建议将成功请求和错误请求的延迟分开统计?
- 为什么说「P99 正常不代表所有用户都正常」?P99.9 在什么场景下更重要?
- RED 方法的三个指标(Rate/Errors/Duration)分别对应用户感知到的什么体验?