深色模式
小步快跑设 SLO
摘要:新手常犯“先定 99.99% 再努力达标”的错,结果月月超标、团队挫败。正确做法是初值放宽(基于当前实测),跑一个月看实际,再每次收紧一点点,让目标始终“踮脚能够到”。
适用环境
- 已能采集 SLI 历史数据(见前文如何选 SLI)
- 准备首次为某服务设 SLO
操作步骤
1. 先测当前水平
promql
# 看过去 30 天实际可用性
avg_over_time(
sum(rate(http_requests_total{code!~"5.."}[5m])) by ()
/ sum(rate(http_requests_total[5m])) by ()
)[30d:]1
2
3
4
5
2
3
4
5
2. 初值 = 实测略低
text
实测 99.2% → 首版 SLO 设为 99.0%(确保能达标,建立信心)1
3. 每月收紧一档
text
第1月 99.0% → 达标
第2月 99.5% → 达标
第3月 99.9% → 按需
每次只动 0.5%~0.9%,别跳太大1
2
3
4
2
3
4
4. 达标后再收紧预算政策
预算充足说明目标偏松,可上调;频繁耗尽说明目标或系统有问题。
DANGER
不要把 SLO 设成“当前实测值”本身——那等于永远 100% 达标,毫无改进牵引力,要留出少量但有意义的空间。
验证
bash
# 每月对比“实际 SLI”与“SLO 目标”,确认在收紧过程中仍可持续达标1
常见坑
WARNING
- 只设不收,目标永远宽松,SLO 失去意义;要有明确的收紧节奏。
- 收紧不看业务:支付和内部工具的收紧速度应不同,别一刀切。