# 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` 总调用次数 - 目标:验证治理入口稳定性,避免灰度期管理面不稳定 ### SLI-4:关键业务流门禁成功率(QAOPS8) - 指标定义: - 分子:`run-business-flow-gates.sh` 中通过的核心业务域数量。 - 分母:本次门禁要求执行的核心业务域数量。 - 当前核心业务域:`reimbursement`、`approval`、`leave`、`procurement`、`governance`。 - 统计口径:以 `artifacts/qa-flow/business-flow-/summary.txt` 的逐组 PASS / FAIL 为准。 - 目标用途:R7E Go/No-Go、发布候选评审和回归失败定位。 ## 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/验真) ### SLO-D(关键业务流门禁) - 目标:进入 R7E Go/No-Go 或发布候选前,要求范围内核心业务流门禁阻断失败数为 0。 - 说明:该项是上线门禁口径,不替代正式线上可用性 SLA;若任一核心业务域失败,结论应为 Pause 或 No-Go。 ## 4. 错误预算策略 ### 预算分级 - 正常区:剩余预算 > 50% - 允许常规迭代与灰度 - 预警区:剩余预算 20% ~ 50% - 限制非必要发布频率,增加回归样本 - 保护区:剩余预算 < 20% - 冻结非紧急变更,仅允许故障修复 ### 预算消耗触发动作 - 可用性预算触发: 1. 立即复核最近 24h 发布与配置变更 2. 执行 `erp_sync` 与 `invoice_verification` 的 `force_off` 预案 - 延迟预算触发: 1. 优先检查 Dashboard 聚合查询与数据库负载 2. 降级非关键统计刷新频率 ## 5. 监控与告警接入 - Prometheus 告警规则:`deploy/prometheus/alerts-slo.yml` - 非功能脚本: - `server/scripts/benchmark-dashboard.sh` - `server/scripts/security-baseline.sh` - 发布前最小检查: - `./scripts/check-minimal.sh` - `cd server && ./scripts/regression-feature-flags.sh` ## 6. 回滚与变更约束 - 一级回滚(业务可用优先): - 将 `erp_sync`、`invoice_verification` 置 `force_off` - 二级回滚(系统保护): - env 硬闸:`ERP_SYNC_ENABLED=false`、`INVOICE_VERIFICATION_ENABLED=false` - 说明:保留审计与历史开关记录,不做 destructive 数据回滚 ## 7. 后续演进(P13-5+) - 将 `regression-all.sh` 结构化结果纳入 SLO 评审输入 - 形成 Change Failure Rate 周报/月报(DORA 指标) - 将 SLO 预算状态纳入发布门禁