3. 告警分级模型设计:P0/P1/P2/P3 四级定义与 SLO 映射

告警分级是 On-Call 路由与降噪策略的基石。没有清晰的分级标准,告警路由会陷入“所有告警都重要”的困境,导致值班人员疲劳、关键事件被淹没。本节将定义 P0–P3 四级模型,并建立与 SLO(服务等级目标)的直接映射关系,确保每一级告警都有明确的业务影响与响应要求。

3.1 P0/P1/P2/P3 四级定义标准

分级模型以用户影响范围和服务可用性损失为核心维度,结合修复紧急程度进行划分。下表列出了每一级的典型特征、响应时间与示例场景:

级别 定义 用户影响 响应时间 (SLA) 典型场景
P0 核心服务完全不可用或严重降级 全部或大部分用户无法使用主要功能 ≤ 15 分钟 支付链路中断、数据库主库宕机、CDN 全局故障
P1 核心服务部分功能受损,或非核心服务完全不可用 部分用户受影响,或核心功能出现明显错误 ≤ 30 分钟 API 错误率 > 5%、订单创建失败率上升、缓存集群降级
P2 服务可用但性能劣化,或非关键功能异常 用户体验下降,但核心流程可走通 ≤ 2 小时 页面加载延迟 > 3s、非核心报表生成失败、部分地域访问慢
P3 轻微异常或潜在风险,不影响当前用户 无直接用户影响 ≤ 24 小时(或下个工作日) 磁盘使用率 > 80%、证书即将过期、日志告警阈值触发
关键原则:P0/P1 必须触发即时 On-Call 响应(电话 + 短信 + 即时通讯);P2 可走值班队列,但允许延迟确认;P3 仅记录工单,不触发值班轮转。

3.2 从 SLO 到告警分级的映射逻辑

SLO 是服务质量的量化承诺,告警分级应直接反映 SLO 的违反程度。我们使用错误预算消耗速率和剩余时间窗口作为映射锚点:

  • P0 映射:错误预算在 10 分钟内消耗超过 50%,或 SLO 已明确违反(例如 99.9% 可用性跌至 99.0%)。
  • P1 映射:错误预算消耗速率超过阈值(如 5%/小时),且趋势持续恶化,预计 1 小时内将违反 SLO。
  • P2 映射:错误预算消耗速率异常但未逼近违反边界,或 SLO 达成率低于目标值但仍在窗口内(如 99.5% vs 目标 99.9%)。
  • P3 映射:指标偏离基线但未影响 SLO,或属于容量/安全预警(如磁盘增长趋势可能导致未来违反 SLO)。
实战建议:在 Prometheus 或 Datadog 中,使用 slo_burn_rate 指标作为分级触发器。例如:
# P0 触发条件:5 分钟窗口内错误预算消耗 > 50%
  - alert: SLO_Burn_Rate_P0
    expr: |
      (1 - (slo_requests_total{status="success"} / slo_requests_total))
      / (1 - 0.999) > 0.5
    for: 5m
    labels:
      severity: P0

3.3 分级与 SLO 映射关系图

下图展示了从 SLO 目标到告警分级的完整映射链路,包含错误预算窗口、消耗速率与响应动作:

告警分级与 SLO 映射架构 告警分级与 SLO 映射链路 SLO 目标 (99.9%) 错误预算窗口 (30 天滚动) 消耗速率检测 (5m / 30m / 1h 窗口) 分级决策引擎:消耗速率 > 50% → P0;> 10%/h → P1;异常 → P2;基线偏离 → P3 P0 即时响应 P1 快速响应 P2 值班队列 P3 工单记录

3.4 分级与路由策略的绑定

每一级告警必须绑定不同的路由与通知策略,避免 P3 告警干扰 On-Call 队列。下表展示了推荐的路由绑定规则:

告警级别 通知渠道 值班层级 自动升级策略 降噪阈值
P0 电话 + 短信 + 即时通讯 @所有人 L1 值班 + L2 技术负责人 5 分钟未确认 → 升级至 L3 总监 无降噪,立即触发
P1 电话 + 即时通讯 @值班人 L1 值班 15 分钟未确认 → 升级至 L2 相同告警 5 分钟内合并
P2 即时通讯 + 邮件 L1 值班(可延迟确认) 2 小时未确认 → 升级至 L2 相同告警 30 分钟内合并
P3 邮件 + 工单系统 不触发值班轮转 24 小时未处理 → 自动创建 Jira 工单 相同告警 1 小时内合并
常见陷阱:不要将 P3 告警直接发送到值班即时通讯群。这会导致“告警疲劳”,值班人员会逐渐忽略所有通知。P3 应走工单系统,仅在每日站会或周报中汇总。

3.5 分级模型的持续校准

分级模型不是一成不变的。随着业务迭代和 SLO 调整,需要定期回顾分级映射的准确性。建议每季度执行一次校准会议,检查以下指标:

  • 误报率:P0/P1 告警中,实际未造成用户影响的比例应 < 10%。
  • 漏报率:用户反馈的故障中,未被 P0/P1 覆盖的比例应 < 5%。
  • 平均响应时间:P0 告警的 MTTA(平均确认时间)应 < 15 分钟,P1 < 30 分钟。
  • 升级率:P0 告警自动升级至 L3 的比例应 < 20%,否则说明 L1 响应能力不足。
校准工具:使用告警回顾仪表板(如 Grafana + Elasticsearch),按周聚合各级告警的触发次数、响应时间、升级次数,与 SLO 达成率做相关性分析。当 SLO 违反事件与告警分级不匹配时,优先调整映射阈值。