监控体系(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)

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

指标

下面我专门把 Metrics 体系单拎出来,从指标本体 → 数据模型 → 采集 → 存储 → 查询 → 治理 → 与稳定性工程的关系,系统性展开;不局限 Prometheus,而是站在“企业级可观测平台”的角度。


一、Metrics 在 Observability 中的真实地位

一句话先定性:

Metrics 是可观测体系中“信噪比最高、成本最低、自动化友好度最高”的信号源。

为什么?

  • 连续时间序列 → 适合算法与告警
  • 体量远小于日志
  • 能直接映射到 SLI / SLO
  • 是容量、稳定性、预测的基础

二、Metrics 的本体模型(不只是 Counter / Gauge)

1️⃣ 指标的数学类型(通用)

类型 含义 典型场景
Counter 单调递增 请求数、错误数
Gauge 瞬时值 CPU、队列长度
Histogram 分布 延迟、大小
Summary 分位数 RT P95

⚠️ 企业级实践重点

  • 延迟 = Histogram + 服务端聚合
  • 少用客户端 Summary(不可聚合)

2️⃣ 指标语义分类(比类型更重要)

(1)资源指标(Infra)

  • CPU / Memory / Disk / Network
  • 容器 / Pod / Node
  • JVM / GC / FD

👉 面向容量与成本


(2)服务指标(Service / API)

  • QPS / RPS
  • Error Rate
  • Latency(P90 / P95 / P99)

👉 黄金指标核心


(3)业务指标(Business)

  • 下单成功率
  • 支付转化率
  • 活跃用户数

👉 真正的 SLA 驱动指标


(4)平台指标(Platform)

  • 队列积压
  • 消费延迟
  • 重试次数

(5)稳定性指标(Reliability)

  • SLI 达标率
  • Error Budget 消耗速率
  • MTTR / MTBF

三、指标数据模型设计(决定你能走多远)

1️⃣ 时间序列模型(通用)

MetricName + Labels → TimeSeries

标签(Label / Tag)设计是成败关键

推荐维度

  • service
  • env
  • region / az
  • instance
  • version

反模式

  • userId
  • orderId
  • traceId

高基数 = 系统性灾难


2️⃣ 维度分层(企业级必做)

层级 示例
全局维度 env / region
服务维度 service / app
实例维度 pod / instance
业务维度 biz_type

3️⃣ Metrics 与 CMDB / Service Catalog 绑定

指标不应“裸奔”:

  • service ↔ 应用
  • 应用 ↔ 团队
  • 团队 ↔ Oncall

👉 这是告警可治理的前提。


四、采集体系(Prometheus 只是其中一种)

1️⃣ Pull vs Push 模式

模式 代表 适用
Pull Prometheus 云原生、K8s
Push StatsD / OTLP 批量、Serverless

2️⃣ 常见采集方式对比

(1)Agent / Exporter

  • Node Exporter
  • JVM Exporter
  • DB Exporter

✅ 标准化 ❌ 覆盖不到业务语义


(2)SDK / 埋点

  • Micrometer
  • OpenTelemetry Metrics SDK

✅ 业务语义强 ❌ 侵入性


(3)Sidecar / Service Mesh

  • Envoy Stats
  • Istio Telemetry

✅ 自动化 ❌ 指标复杂度高


3️⃣ OpenTelemetry 的定位(重点)

OTel = 采集与语义标准,不是存储。

  • Metrics / Logs / Traces 统一模型
  • OTLP 协议
  • 面向多后端(Prom / Datadog / 云厂商)

👉 企业长期演进强烈建议 OTel


五、存储引擎(不止 Prometheus)

1️⃣ 单机 / 本地 TSDB

  • Prometheus
  • InfluxDB

适合:

  • 中小规模
  • 单集群

2️⃣ 分布式时序数据库(企业主流)

产品 特点
VictoriaMetrics 高压缩、低成本
M3DB Uber 系
Thanos Prom 扩展
Cortex 多租户
OpenTSDB HBase 生态

3️⃣ 云厂商 & 商业产品

  • Datadog
  • New Relic
  • CloudWatch
  • Azure Monitor

4️⃣ 关键能力对比维度

  • 写入吞吐
  • 查询延迟
  • 多租户
  • 长期存储
  • 成本模型

六、查询 & 分析层(不止 PromQL)

1️⃣ 查询语言

  • PromQL
  • SQL(ClickHouse + Metrics)
  • MQL(云厂商)

👉 企业趋势:Metrics SQL 化


2️⃣ 聚合能力

  • Rate / Increase
  • Downsampling
  • Rollup

3️⃣ 多信号关联

  • Metrics → Logs
  • Metrics → Trace

七、告警体系中的 Metrics(正确用法)

1️⃣ 告警对象不是“指标”,而是“服务健康”

错误示例

CPU > 80%

正确示例

ErrorRate > 1% AND 持续 5 分钟

2️⃣ Burn Rate 告警(SRE 必备)

ErrorBudgetBurnRate > 2x

👉 比阈值告警稳定得多


3️⃣ 告警降噪

  • 多维聚合
  • 时间窗口
  • 拓扑抑制

八、Metrics 与 Reliability 的强绑定

能力 Metrics 作用
SLI 指标即定义
SLO 基于指标计算
容量规划 趋势预测
自愈 触发条件
RCA 变化源头

九、治理能力(90% 团队忽略)

1️⃣ 指标规范

  • 命名规则
  • 单位标准
  • 维度约束

2️⃣ 生命周期管理

  • 过期指标清理
  • 冷热分层

3️⃣ 成本治理

  • 高基数检测
  • 高频写入限制

4️⃣ 指标目录(Metrics Catalog)

  • 指标含义
  • 负责人
  • 关联服务

十、成熟度模型(Metrics 视角)

阶段 特征
L1 资源监控
L2 服务黄金指标
L3 业务指标
L4 SLO 驱动
L5 预测 & 自愈