「沒有量測就沒有改進」#

這條金句是 SRE 的支柱。但選錯指標比沒指標還危險,因為它會誤導決策。

案例:100% 可用率的迷思#

延續旅遊軟體案例。守門上線後表現提升,新功能持續加入。一年後 leadership 想看績效報表,SRE 從 production 提供:

  • 可用率(%)
  • SLA 違反率
  • MTTR、MTBF、MTTD

報表顯示 100% 可用率,但客戶端反映只有 95%。leadership 因「系統夠穩」而砍預算。

問題分析#

  • 100% 可用率的定義是「即便有錯,自動修復後系統未中斷」——但客戶仍看到失敗
  • MTBF 顯示 70% 改善,因為計算邏輯只看「同類失敗再次發生」,忽略了多數新型故障
  • 可用性工具把「客戶有沒有反映」當條件之一——如果客戶沒打電話,就當沒事

解法:重新校準量測#

  1. 從可用性指標移除「客戶反映」這一條件
  2. SRE 與開發合作把 MTTD 寫進開發流程
  3. 檢視底層錯誤碼邏輯,補齊原本被略過的故障
  4. 開發在開發階段就用 MTTD 抓錯誤
  5. 重新發布後,leadership 終於看到「系統還在 nascent 階段」這個實情

量測的目的是反映現實,不是讓報告好看。指標走偏時,第一個被誤導的就是決策層。

指標怎麼選#

  • 跨團隊共同設計:SRE、開發、測試一起決定衡量方式
  • 依服務特性調整:同一系統內不同服務量測標準可能不同
    • 例:服務 1 觸發其他工作後即關閉,把「服務健康度」當 MTTD 條件就會誤報

常用指標#

  • MTTR:恢復時間
  • MTTD:偵測時間
  • MTBF:故障間隔
  • 可用率(%):直接反映可靠性
  • 變更上線前置時間(lead time for changes):反映工具與流程效率

SRE 四黃金指標#

  • 延遲(latency)
  • 飽和(saturation)
  • 流量(traffic)
  • 錯誤(error)

指標選擇後請定期校準。每年都該重新審視「我們在量測什麼?這個量測還反映現實嗎?」