挑對 SLI(好事件 / 總事件)

★★★★Draft

FromSRE WorkbookSRE

📚 From the Books

挑對 SLI(好事件 / 總事件)SLOs & Error Budgets

SLO 的品質上限由 SLI 決定。把 SLI 想成一個比率——好事件數 / 總事件數——它天然落在 0%~100%、直覺好懂,1 − SLO 就是 error budget。難的不是算,而是選:量到的東西必須真的反映使用者的感受。

🧠 Intuition

TIP

SLI = 好事件數 / 總事件數。例:成功 HTTP 請求 / 總請求(成功率)、100 ms 內完成的 gRPC / 總 gRPC(延遲達標率)。統一寫成比率,各服務的可靠度就能用同一把尺比較。

⚖️ Tradeoffs

用平均值當 SLI — 看似穩,其實騙人
  • 「平均延遲」會把長尾請求壓平,「平均 QPS」會掩蓋短時間爆量——多數指標該視為分佈而非單一平均。
  • 延遲分布天生右偏(不會小於 0、有 timeout 上限),平均數與中位數常差很多;基於平均值的異常偵測容易誤判或漏判。
  • 該看百分位:50th(典型體驗)、95th / 99th / 99.9th(最壞情境)。使用者實驗顯示——人們偏好「稍慢但穩定」而非「平均快但變異大」的系統。
量測點離使用者太遠 — 覆蓋率不足
  • 伺服器端指標(如 HTTP 5XX 比例)好蒐集,但有些問題只在 client 端看得到(JS 慢、CDN 失效)。純伺服器端量會漏掉這段。
  • 若做不到直接量使用者端,至少選一個合理的 proxy(如負載平衡器指標——已可用、又比純後端更接近使用者體驗)。
  • 覆蓋率不足的訊號:故障沒被任何 SLI 捕捉,或 SLI 掉了卻對不上使用者影響。此時該把量測點移近使用者,或擴大 SLI 涵蓋的互動。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading

🔗 Dive Deeper