博客/系统运维可观测性
参考 05 ·

评估框架

3.5 评估框架与落地检查清单

本章节为方案评估和落地提供量化框架,覆盖 SLO/SLI 设计、效果评估指标、ROI 计算器、错误预算管理、风险评估矩阵以及各模块落地检查清单。


1. SLO/SLI 设计

1.1 核心概念

概念 定义 示例
SLI(服务等级指标) 实际测量的服务质量 请求延迟、可用率、错误率
SLO(服务等级目标) 目标服务质量 P99 < 200ms、可用率 > 99.9%
SLA(服务等级协议) 与客户的书面协议 99.95% 可用率 + 赔偿条款
错误预算 允许的故障时间 99.9% SLO → 每月 43min 错误预算

1.2 本方案 SLO 目标

阶段 指标 目标值 当前行业水平
1分钟发现 MTTD < 1 分钟 5 分钟
5分钟定位 MTTR < 5 分钟 30 分钟
10分钟恢复 平均恢复时间 < 10 分钟 2 小时
告警准确率 Precision > 80% 30%
根因准确率 Hit Rate@3 > 80% 50%
自动化率 自动修复占比 > 80% 20%

1.3 SLI 采集规范

def calculate_availability(window='30d'):
    """可用率 SLI"""
    good_events = query("""
        SELECT count(*) FROM events
        WHERE status='resolved'
        AND duration < 5min
        AND timestamp > now() - {window}
    """)
    total_events = query("""
        SELECT count(*) FROM events
        WHERE timestamp > now() - {window}
    """)
    return good_events / total_events if total_events > 0 else 1.0

def calculate_latency_p99(window='1h'):
    """延迟 SLI (P99)"""
    latencies = query("""
        SELECT latency_ms FROM request_metrics
        WHERE timestamp > now() - {window}
        ORDER BY latency_ms
    """)
    return np.percentile(latencies, 99)

2. 错误预算管理

2.1 错误预算消耗与告警

flowchart LR subgraph 消耗["错误预算消耗"] B[月度错误预算 43 min] --> U[已消耗 15 min] B --> R[剩余 28 min] end subgraph 阈值["告警阈值"] T1[消耗 50% 21.5 min → 观察] T2[消耗 70% 30 min → 告警] T3[消耗 90% 38.7 min → 冻结发布] T4[消耗 100% 43 min → 暂停新特性] end B --> T1 --> T2 --> T3 --> T4
消耗比例 状态 团队动作
< 50% 🟢 健康 正常迭代
50% - 70% 🟡 关注 排查近期故障根因
70% - 90% 🟠 告警 组建专项改进小组
90% - 100% 🔴 严重 暂停新功能发布,集中改进
> 100% ⚫ 预算耗尽 SLO 未达标,需调整目标或投入

2.2 多层级 SLO

层级 SLO 目标 错误预算/月 告警阈值
Tier 0(核心交易) 99.99% 4.3 min 消耗 30% 告警
Tier 1(重要业务) 99.95% 21.5 min 消耗 50% 告警
Tier 2(基础服务) 99.9% 43 min 消耗 70% 告警
Tier 3(工具/辅助) 99.5% 3.6 h 消耗 80% 告警

3. 效果评估指标体系

3.1 五大评估维度

维度 核心指标 目标 度量方式
速度 MTTD / MTTR 1-5-10 每次故障记录
智能 根因准确率 / 知识覆盖率 > 80% 人工复核
效率 自动化率 / 告警压缩率 > 80% / > 70% 系统统计
质量 误报率 / 漏报率 < 20% / < 5% 告警确认记录
进化 模型迭代周期 / 知识增长率 < 7d / > 10%/月 系统统计

3.2 告警质量评估

flowchart LR subgraph 输入["告警"] A[原始告警 150+ 条/天] end subgraph 处理["智能感知层"] D[去重合并 -40%] F[关联分析 -20%] C[分类分级 -10%] end subgraph 输出["有效告警"] O[35 条/天 有效告警] end A --> D --> F --> C --> O