本節將回顧服務水準指標 (SLI) 的概念,定義良好或實用的 SLI,並提供所選服務的 SLI 實作範例。本頁面適用於想瞭解如何實作服務專屬 SLI 的使用者。
服務等級指標簡介
服務的可靠性是抽象概念,可靠性的意義取決於服務和使用者的需求。服務水準指標 (SLI) 是衡量可靠性的指標,可用於溝通服務的可靠性,以及管理服務。
服務水準指標是在一段時間內測量。時間範圍的大小通常取決於資訊的用途。舉例來說,您可以透過下列方式測量單一服務水準指標:
- 在最近一小時內建立快訊政策。
- 幾週內,用於制定戰術決策。
- 以月為單位,制定策略性決策。
建議您從 28 天開始評估 SLI,這個值可在策略和戰術用途之間取得良好平衡。
詳情請參閱《 網站可靠性工程工作手冊》的下列章節:
優良 SLI 的屬性
我們認為「良好」的 SLI 應符合下列條件:
服務等級指標是衡量使用者滿意度的良好替代指標。
良好的 SLI 與使用者滿意度有很強的關聯性。您會以 SLI 做為服務等級目標 (SLO) 的依據,也就是 SLI 的門檻。設定 SLO 時,請確保 SLI 落在定義的範圍內,讓大多數使用者感到滿意。如要維持這種關係,SLI 必須是使用者滿意度的良好替代指標。
如果 SLI 是使用者滿意度的良好指標,那麼當發生影響使用者滿意度的事件時,SLI 就會朝某個方向變動。同樣地,如果沒有影響使用者滿意度的事件,SLI 就不會變動。
SLI 會隨著使用者滿意度單調遞增和線性遞增。
良好的 SLI 會隨著使用者滿意度單調遞增,且呈現線性關係。如果 SLI 提升,使用者滿意度也會提升。同樣地,如果 SLI 下降,使用者滿意度也會下降。良好 SLI 的值提升多少,使用者滿意度就會提升多少。
SLI 的測量結果介於 0% 到 100% 之間。
良好的 SLI 會產生 0% 到 100% 的效能測量結果:這個範圍直覺易懂,方便使用。舉例來說,SLI 效能為 100% 表示一切正常運作,SLI 效能為 0% 則表示所有功能都無法運作。
服務水準指標的範圍為 0% 到 100%,因此設定服務水準目標時,只要指派百分比目標 (例如 99.9%),服務水準指標效能就必須達到或高於該目標,服務才能符合服務水準目標。
Promise
如要導入具有這些屬性的 SLI,其中一種方法是從對使用者做出的承諾著手。計算您在一段時間內做出並遵守的承諾,即可得出 0% 到 100% 的分數。這類服務水準指標也很適合轉換為錯誤預算:對於特定服務等級目標,錯誤預算就是您在一段時間內可以違反承諾的次數,同時仍符合服務等級目標。
承諾的範例如下:
- 向顧客要求傳回 HTTP
200狀態碼的回應。 - 在 100 毫秒內回應 gRPC 要求。
- 順利完成「建立虛擬機器」工作流程。
- 提供過去 10 分鐘內重新整理的資料。
- 在排定時間的一分鐘內開始執行排定的批次工作。
SLI 規格和實作方式
SLI 規格是您想評估成效的內容。規格不包含測量方式的確切技術細節。舉例來說,以下是網頁載入時間的 SLI 規格:
- 在 100 毫秒內載入的首頁請求百分比。
評估 SLI 的方法有很多種,各有優缺點。 評估 SLI 的方法就是 SLI 實作。舉例來說,您可以將網頁載入規格實作為下列其中一種:
- 應用程式伺服器要求記錄的延遲時間欄位。
- 應用程式伺服器匯出的指標。
- 應用程式伺服器前端的負載平衡器匯出的指標。
- 黑箱監控服務會向系統傳送人工要求,並計算收到有效回應所需的時間。
- 在客戶瀏覽器中執行的應用程式專屬程式碼,可記錄時間資訊並傳回收集服務。
這些選項各有優缺點,需要權衡下列特性:
- 準確度:模型擷取使用者體驗的準確程度。
- 涵蓋範圍:可評估的使用者互動所占比例。
- 成本:建構及維護解決方案所需的金額和工程時間。
通常,越接近使用者測量 SLI,使用者體驗的準確度就越高。舉例來說,與使用者或透過其他測量方式所感受到的延遲時間相比,在使用者瀏覽器中使用程式碼的實作方式,能更準確地測量延遲時間。
但缺點是,以瀏覽器為準的評估方式也會納入使用者連線至服務時造成的任何延遲。舉例來說,如果服務是透過公用網際網路使用,延遲時間可能會因地理位置或網路狀況而有顯著差異。
因此,以瀏覽器為準的信號是使用者滿意度的良好指標。不過,這項信號可能無法提供實用資訊,協助您提升服務的穩定性。
如要瞭解如何合併多項指標來平衡這項取捨,請參閱這篇 The Telegraph 的文章。
特徵分塊
如果服務為不同使用者執行不同類型的工作,或是執行特定工作時可能出現不同結果,您可能就需要為服務設定多個 SLI。
不同工作
如果服務會為不同類別的使用者執行多種工作,且每種工作對使用者滿意度的影響不同,則適合使用多個 SLI。
舉例來說,如果您的服務同時處理讀取和寫入要求,執行這些工作的使用者可能會有不同需求:
- 讀取要求必須快速。
- 寫入要求必須成功。
為滿足這些不同需求,SLI 必須能夠區分這兩種情況。通常,SLI 指標會包含標籤,可用於將值分類到其中一個值區。
一項工作,不同結果
如果服務只執行單一類型的工作,但使用者期望因回應而異,則可透過多個 SLI 獲益。
舉例來說,如果您的服務只提供資料的讀取權限,使用者對延遲的容許度可能會因要求結果而異:
- 使用者可能會容許快速傳回的錯誤,因為使用者可以立即重試要求。
- 使用者可能無法接受要求成功但耗時過長。
- 使用者最無法接受最糟的情況:要求長時間後才傳回錯誤。
在這種情況下,延遲 SLI 必須能夠區分成功和失敗的要求。
後續步驟
如要瞭解如何使用指標為 Google Cloud 服務導入Google Cloud 服務等級指標,請參閱下列文章:
如要瞭解如何導入應用程式專屬的 SLI,請參閱下列文章:
如要查看範例,瞭解如何為回報自訂指標的服務建立服務水準指標,請參閱「設定服務水準目標:使用自訂指標進行可觀測性」。