1. 黄金指标概述:USE、RED、Four Golden Signals 方法论对比与选择

在可观测性工程与 SRE 实践中,黄金指标方法论是构建有效告警、仪表盘与录制规则的基础。本章将系统对比三种主流方法论——USE、RED 与 Four Golden Signals,帮助你在不同监控场景下做出正确选择。

1.1 三大方法论核心定义

方法论 全称 适用层级 核心维度 典型场景
USE Utilization · Saturation · Errors 基础设施(硬件/OS) 利用率、饱和度、错误 CPU、内存、磁盘、网络
RED Rate · Errors · Duration 服务/应用层 请求速率、错误率、延迟 HTTP API、gRPC、微服务
Four Golden Signals Latency · Traffic · Errors · Saturation 全栈(用户视角) 延迟、流量、错误、饱和度 用户端到端体验、容量规划
实践建议: 在 PromQL 录制规则设计中,USE 适合 node_exporter 等基础设施指标,RED 适合业务服务指标,Four Golden Signals 适合构建全局 SLO 仪表盘。三者并非互斥,而是互补。

1.2 方法论对比:何时选择哪一个?

选择方法论取决于监控对象的抽象层级与团队关注点。以下对比表可帮助你快速决策:

对比维度 USE RED Four Golden Signals
监控对象 物理/虚拟资源 服务/应用 用户旅程 + 系统
指标数量 3 个维度/资源 3 个维度/服务 4 个维度/系统
告警灵敏度 高(饱和度预警) 中(错误率 + 延迟) 高(多维度交叉)
录制规则复杂度 低(聚合简单) 中(需分位值) 高(需多指标关联)
典型 PromQL 函数 rate, avg_over_time rate, histogram_quantile rate, histogram_quantile, max_over_time
关键原则: 对于基础设施层,优先 USE;对于服务层,优先 RED;对于全局 SLO 与容量规划,优先 Four Golden Signals。录制规则设计时,建议按方法论分层组织,避免混用导致语义混乱。

1.3 方法论关系与分层架构

下图展示了三种方法论在典型监控栈中的分层关系与数据流向:

黄金指标方法论分层架构 Four Golden Signals(用户端到端体验) 延迟 · 流量 · 错误 · 饱和度 适用:全局 SLO 仪表盘、容量规划、用户体验告警 RED(服务/应用层) 请求速率 · 错误率 · 延迟(Duration) 适用:微服务健康、API 性能、错误预算 USE(基础设施层) 利用率 · 饱和度 · 错误 适用:CPU、内存、磁盘、网络、节点健康 数据流方向:基础设施指标 → 服务指标 → 用户端到端指标,层层聚合

1.4 实战选择矩阵

在录制规则设计阶段,你可以根据以下矩阵快速确定每个指标集应归属的方法论:

监控目标 推荐方法论 PromQL 录制规则示例
CPU 是否过载 USE avg by(instance) (rate(node_cpu_seconds_total{mode="user"}[5m]))
HTTP 请求成功率 RED sum by(service) (rate(http_requests_total{status=~"5.."}[5m])) / sum by(service) (rate(http_requests_total[5m]))
用户感知延迟 P99 Four Golden Signals histogram_quantile(0.99, sum by(le) (rate(http_request_duration_seconds_bucket[5m])))
磁盘 I/O 饱和度 USE rate(node_disk_io_time_seconds_total[5m]) / rate(node_disk_io_time_weighted_seconds_total[5m])
数据库连接池利用率 USE avg by(instance) (pg_stat_activity_count) / avg by(instance) (pg_settings_max_connections)
gRPC 调用错误率 RED sum by(service, method) (rate(grpc_server_handled_total{grpc_code!="OK"}[5m])) / sum by(service, method) (rate(grpc_server_handled_total[5m]))

1.5 方法论选择决策流程

以下流程图帮助你快速确定在录制规则设计中应优先采用哪种方法论:

方法论选择决策流程 开始:确定监控对象 基础设施? USE 方法论 利用率/饱和度/错误 服务/应用? RED 方法论 速率/错误/延迟 Four Golden Signals 延迟/流量/错误/饱和度 提示:如果监控对象同时包含基础设施和服务,建议分层设计录制规则,每层独立采用对应方法论

1.6 常见误区与避坑指南

  • 误区一: 在基础设施层使用 RED 方法论。RED 的 Rate 和 Duration 面向请求语义,基础设施指标(如 CPU 利用率)没有“请求”概念,强行套用会导致指标语义混乱。
  • 误区二: 在服务层只使用 USE 的“利用率”维度。服务层的关键信号是错误率和延迟,忽略它们会导致告警延迟或漏报。
  • 误区三: 将 Four Golden Signals 的“饱和度”与 USE 的“饱和度”混为一谈。前者指服务容量(如连接数、队列深度),后者指资源争用(如 CPU run queue)。
  • 误区四: 录制规则中同时使用多种方法论但未做分层隔离,导致仪表盘指标混杂,难以快速定位问题。
重要提醒: 在 PromQL 录制规则设计阶段,务必在规则命名或标签中标注所属方法论(如 use:cpu_saturation、red:http_error_rate),便于团队理解和后期维护。

1.7 本章小结

  • USE 方法论:基础设施层首选,关注资源利用率、饱和度和错误。
  • RED 方法论:服务层首选,关注请求速率、错误率和延迟。
  • Four Golden Signals 方法论:全栈用户视角,关注延迟、流量、错误和饱和度。
  • 三种方法论按监控栈分层互补,录制规则设计时应按层隔离、按方法论命名。
  • 选择方法论的核心依据是监控对象的抽象层级与团队关注的 SLO 维度。