监控体系(Observability / Reliability Platform)

目标:看到异常” → “定位问题” → “持续可靠性治理

P0(可观测基础)
├── Metrics(Prometheus)
├── Logging(ELK / Loki)
├── Tracing(Jaeger / Zipkin)
├── Error Tracking(Sentry)

P1(定位与响应)
├── 秒级大盘(Grafana)
├── 告警平台
├── 事件中心(Incident)

P2(可靠性治理)
├── SLA / SLO 评估平台
├── StatusPage
├── 变更 / 发布关联分析

P3(智能化)
├── RCA 根因分析系统
├── 拓扑感知 / 依赖图
├── 智能异常检测(AIOps)

看见信号 → 定位问题 → 控制影响 → 复盘改进 → 可靠性提升

告警平台

下面我把 告警平台(Alerting Platform) 当成一个独立的一等平台能力来系统展开,而不是“Prometheus + Alertmanager 配几个规则”。

我会从 定位 → 数据模型 → 告警生成 → 降噪 → 事件化 → 人与自动化 → 治理与成熟度 全链路拆解,尽量贴近你前面已经构建的 Observability / Reliability 语境。


一、先定性:告警平台到底是什么

一句话定义:

告警平台不是“发现问题”,而是“在正确的时间,把正确的问题,通知给正确的人或系统”。

这句话里有四个关键词:

  • 正确的时间
  • 正确的问题
  • 正确的对象
  • 人 or 自动化系统

👉 任何一个做不好,告警都会变成噪音。


告警 ≠ 监控 ≠ 事件

概念 本质
Monitoring 数据采集与观测
Alert 异常信号
Event / Incident 需要处理的事故

告警是“信号”,不是“事故”。


二、告警平台在体系中的位置

Metrics / Logs / Traces / Error Tracking
              ↓
        告警规则引擎
              ↓
        告警降噪 & 关联
              ↓
         事件(Incident)
              ↓
      Oncall / 自动化

👉 告警平台是“可观测 → 稳定性工程”的闸门。


三、告警数据模型(很多平台做得不完整)

1️⃣ Alert(告警实例)

一次被触发的异常信号

核心字段:

  • alert_name
  • source(metric / log / error)
  • service / env
  • severity
  • labels / annotations
  • start_time / end_time

2️⃣ Alert Rule(告警规则)

不是“阈值”,而是逻辑表达式

  • 条件(What)
  • 时间窗口(When)
  • 严重级别(How bad)
  • 目标对象(Who)

3️⃣ Event / Incident(事件)

多个告警 → 一个事件

字段包括:

  • 影响范围
  • 状态(Open / Mitigated / Resolved)
  • Owner
  • RCA / 处理记录

四、告警来源(不只是 Metrics)

1️⃣ Metrics 告警(最常见)

  • Error Rate
  • Latency
  • Saturation
  • Burn Rate(强烈推荐)

2️⃣ Log 告警(谨慎使用)

正确方式:

  • 日志聚合
  • 日志 → 指标 → 告警

错误方式:

  • 单条 ERROR 触发

3️⃣ Error Tracking 告警

  • 新 Error Issue
  • 已修复 Issue 回归
  • 高频错误影响用户

👉 这是对开发最友好的告警类型。


4️⃣ 外部信号

  • SLA 探测
  • 业务健康检查
  • 安全 / 风控系统

五、告警规则设计(成败关键)

1️⃣ 告警对象必须是“服务健康”

❌ 错误:

CPU > 80%

✅ 正确:

5分钟内 error_rate > 1%

2️⃣ 时间维度是第一公民

  • for: 3m / 5m
  • 滑动窗口
  • 连续失败次数

👉 大量误报,来自“没有时间概念”。


3️⃣ SRE 推荐:Burn Rate 告警

ErrorBudgetBurnRate > 2x

优点:

  • 稳定
  • 与 SLO 强绑定
  • 不随流量变化抖动

六、告警降噪(告警平台的灵魂)

没有降噪能力的告警平台,一定会失败。


1️⃣ 去重(Deduplication)

  • 相同指纹
  • 同一服务 / 指标

2️⃣ 聚合(Aggregation)

  • 多实例 → 服务级
  • 多指标 → 症状级

3️⃣ 抑制(Suppression)

  • 根因告警抑制下游
  • 维护窗口

4️⃣ 收敛(Correlation)

  • 拓扑关系
  • 变更关联
  • 时间相似性

七、告警 → 事件(Incident)转化

这是平台分水岭

告警多 → 人崩

事件少 → 可治理


Incident 的最小能力

  • 创建 / 升级 / 关闭
  • 影响范围评估
  • 责任人
  • 时间线(Timeline)

和你前面提到的 事件中心 的关系

告警平台负责“信号收敛”, 事件中心负责“事故管理”。


八、通知与响应(Oncall)

1️⃣ 通知不是“发消息”

它是一个责任机制

  • 值班表
  • 升级策略
  • 兜底策略

2️⃣ 通知渠道

  • IM
  • 电话 / 短信
  • 工单
  • 自动化接口

3️⃣ Ack / Resolve 是必须的

没有 Ack 的告警 = 没人负责。


九、告警与自动化 / 自愈

成熟平台一定支持:

  • 告警触发 Runbook
  • 自动扩容
  • 自动重启
  • 自动降级

人只处理“机器处理不了的告警”。


十、治理能力(长期不崩的关键)

1️⃣ 告警目录(Alert Catalog)

  • 告警含义
  • 影响范围
  • 处理建议

2️⃣ 告警评审机制

  • 新告警必须评审
  • 无响应告警必须下线

3️⃣ 指标与告警比例

  • 不是所有指标都该有告警

4️⃣ 效果度量

  • 告警数量
  • 告警命中率
  • MTTA / MTTR

十一、成熟度模型(告警平台)

阶段 特征
L1 阈值告警
L2 服务级告警
L3 降噪 / 聚合
L4 Incident 驱动
L5 自动化 & 智能