2. Errors 指标基础:什么是 Errors 指标、错误率、错误计数、错误码分类
在可观测性体系中,Errors 指标是衡量系统健康度的核心信号之一。它直接反映用户请求失败、业务逻辑异常或基础设施故障的频率与分布。要构建有效的告警降噪策略,首先必须准确理解 Errors 指标的定义、计算方式与分类体系。
2.1 什么是 Errors 指标
Errors 指标是对系统失败行为的量化描述。它通常以计数或比率的形式出现,用于回答以下问题:
- 当前有多少请求失败了?
- 失败请求占总请求的比例是多少?
- 失败是否集中在特定接口、服务或错误码上?
关键认知: Errors 指标不是单一数值,而是一组多维度的度量集合。仅看“错误数”往往无法定位根因,必须结合错误率、错误码分布和上下文标签(如服务名、端点、版本)才能形成有效判断。
2.2 错误计数(Error Count)
错误计数是最基础的 Errors 指标,表示在特定时间窗口内发生的失败请求总数。它通常由服务端中间件或客户端 SDK 直接采集,例如 HTTP 500 响应次数、RPC 调用超时次数、数据库查询失败次数等。
| 指标名称 | 典型 PromQL 示例 | 说明 |
|---|---|---|
http_requests_total{status=~"5.."} |
sum(rate(http_requests_total{status=~"5.."}[5m])) |
5xx 错误请求的速率 |
grpc_server_handled_total{grpc_code!="OK"} |
sum(rate(grpc_server_handled_total{grpc_code!="OK"}[5m])) |
gRPC 非 OK 状态码计数 |
db_query_errors_total |
sum(rate(db_query_errors_total[5m])) |
数据库查询失败次数 |
注意: 错误计数容易受流量波动影响。在流量高峰期,即使错误率不变,错误计数也会自然升高。因此,错误计数不适合直接用于告警阈值,更适合作为趋势分析的原始数据。
2.3 错误率(Error Rate)
错误率是错误计数与总请求数的比值,通常以百分比表示。它消除了流量规模的影响,能更真实地反映系统质量。常见的错误率定义包括:
- 请求错误率:失败请求数 / 总请求数 × 100%
- 业务错误率:业务逻辑失败数 / 业务总调用数 × 100%
- 资源错误率:资源操作失败数 / 资源操作总数 × 100%
实践建议: 在 SLO 定义中,错误率通常使用“良好窗口”方式计算(如 5 分钟滑动窗口内的错误率),而非瞬时值。这能有效过滤毛刺,避免告警风暴。
错误率的计算公式在 PromQL 中通常表示为:
# 5 分钟滑动窗口内的 HTTP 5xx 错误率
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
* 100
2.4 错误码分类体系
错误码是 Errors 指标的核心维度。合理的错误码分类能帮助 SRE 团队快速区分客户端错误、服务端错误和业务逻辑错误,从而制定差异化的告警策略。
2.5 错误码分类与告警策略的对应关系
不同的错误码分类对应不同的告警响应策略。下表总结了常见错误码的告警建议:
| 错误码范围 | 分类 | 典型原因 | 告警建议 |
|---|---|---|---|
| 400 – 499 | 客户端错误 | 参数校验失败、鉴权过期、请求频率过高 | 低优先级告警,或仅记录日志;429 可触发限流告警 |
| 500 – 599 | 服务端错误 | 代码异常、数据库超时、依赖服务故障 | 高优先级告警,需立即响应;结合错误率触发 |
| 业务 1001 – 1999 | 业务逻辑错误 | 库存不足、重复下单、风控拦截 | 中优先级告警,按业务影响面决定是否通知 |
| 超时 / 熔断 | 基础设施错误 | 网络延迟、连接池耗尽、熔断器打开 | 高优先级告警,通常伴随服务端错误 |
2.6 错误率与错误计数的联合分析
在实际可观测性实践中,错误率和错误计数需要联合使用才能准确判断故障严重程度。以下是一个典型的联合分析矩阵:
2.7 本章小结
- Errors 指标是衡量系统失败行为的量化工具,包含错误计数和错误率两个核心维度。
- 错误计数受流量影响大,适合趋势分析;错误率消除流量影响,适合告警阈值设定。
- 错误码分类(客户端错误、服务端错误、业务错误)是告警降噪的基础,不同分类对应不同的响应策略。
- 联合分析矩阵帮助 SRE 团队快速判断故障严重程度,避免误告警和漏告警。
下一阶段预告: 在掌握 Errors 指标基础后,第 3 章将深入讲解 错误率聚合策略,包括全局聚合、分维度聚合和滑动窗口聚合,为告警降噪提供更精细的数学基础。