3.1 KiB
3.1 KiB
SLI / SLO 与错误预算(P13)
更新时间:2026-02-12
1. 范围与目标
本版聚焦 P11/P13 治理链路(Feature Flags、ERP 同步、验真开关)和核心可观测接口,建立可执行的 SLI/SLO 与错误预算基线。
- 环境范围:生产环境(
NODE_ENV=production) - 统计窗口:滚动 30 天
- 目标用途:发布评审、变更放行、故障复盘
2. SLI 定义
SLI-1:API 可用性(Availability)
- 指标定义:
- 分子:
http_server_requests_total{status!~"5.."} - 分母:
http_server_requests_total
- 分子:
- 统计口径:按所有
/api/*请求聚合 - 采样周期:5 分钟
SLI-2:核心接口延迟(Latency P99)
- 指标定义:
histogram_quantile(0.99, rate(http_server_request_duration_seconds_bucket[5m])) - 核心接口:
/api/dashboard/expense-overview/api/dashboard/trends/api/dashboard/top-categories/api/dashboard/approval-efficiency
SLI-3:治理开关变更成功率(Feature Flag Update Success)
- 指标定义:
- 分子:
/api/system/feature-flags/:key返回 2xx 的次数 - 分母:
/api/system/feature-flags/:key总调用次数
- 分子:
- 目标:验证治理入口稳定性,避免灰度期管理面不稳定
3. SLO 目标
SLO-A(可用性)
- 目标:30 天可用性 >= 99.90%
- 对应最大不可用预算:0.10%
- 换算:
- 每 30 天预算约 43 分钟
- 每 7 天预算约 10 分钟
SLO-B(延迟)
- 目标:核心 Dashboard 接口 P99 < 500ms
- 兜底上限:P99 不得持续超过 1500ms 超过 15 分钟
SLO-C(治理变更稳定性)
- 目标:Feature Flag 更新成功率 >= 99.5%
- 说明:若低于目标,暂停高风险灰度变更(ERP/验真)
4. 错误预算策略
预算分级
- 正常区:剩余预算 > 50%
- 允许常规迭代与灰度
- 预警区:剩余预算 20% ~ 50%
- 限制非必要发布频率,增加回归样本
- 保护区:剩余预算 < 20%
- 冻结非紧急变更,仅允许故障修复
预算消耗触发动作
- 可用性预算触发:
- 立即复核最近 24h 发布与配置变更
- 执行
erp_sync与invoice_verification的force_off预案
- 延迟预算触发:
- 优先检查 Dashboard 聚合查询与数据库负载
- 降级非关键统计刷新频率
5. 监控与告警接入
- Prometheus 告警规则:
deploy/prometheus/alerts-slo.yml - 非功能脚本:
server/scripts/benchmark-dashboard.shserver/scripts/security-baseline.sh
- 发布前最小检查:
./scripts/check-minimal.shcd server && ./scripts/regression-feature-flags.sh
6. 回滚与变更约束
- 一级回滚(业务可用优先):
- 将
erp_sync、invoice_verification置force_off
- 将
- 二级回滚(系统保护):
- env 硬闸:
ERP_SYNC_ENABLED=false、INVOICE_VERIFICATION_ENABLED=false
- env 硬闸:
- 说明:保留审计与历史开关记录,不做 destructive 数据回滚
7. 后续演进(P13-5+)
- 将
regression-all.sh结构化结果纳入 SLO 评审输入 - 形成 Change Failure Rate 周报/月报(DORA 指标)
- 将 SLO 预算状态纳入发布门禁