SLO 與 SLI
Vibe Prompt
「幫我為一個 API 服務定義 SLI(可用性 99.9%、P95 延遲 <200ms)與 SLO。」
SLI 類型
| 指標 | SLI 範例 | |------|---------| | 可用性 | 成功請求 / 總請求 >= 99.9% | | 延遲 | P95 回應時間 < 200ms | | 吞吐量 | 每秒請求數 > 1000 | | 錯誤率 | 5xx 錯誤 < 0.1% |
計算方式
# 可用性 SLI
sum(rate(http_requests_total{status!~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
# P95 延遲
histogram_quantile(0.95,
sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
# 錯誤率
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
SLO 範例
| 服務 | SLO | 錯誤預算/月 | |------|-----|------------| | API Gateway | 99.9% | 43 分鐘 | | 資料庫 | 99.99% | 4.3 分鐘 | | 排程任務 | 99.5% | 3.6 小時 | | DNS 解析 | 99.99% | 4.3 分鐘 |
錯誤預算
每月錯誤預算 = (1 - SLO) × 30 × 24 × 60 分鐘
99.9% → 43.2 分鐘/月
99.99% → 4.32 分鐘/月
消耗速度太快 → 停止新功能,專注穩定性
消耗速度正常 → 可以繼續開發