SLO 資料會儲存在時間序列中。您可以透過 filter
參數,在 timeSeries.list
方法中指定時間序列選取器,或在 Metrics Explorer 中使用直接篩選器模式,擷取 SLO 時間序列。
以服務等級目標為準的快訊政策
如果您是使用 Cloud Monitoring API 建立快訊政策,請使用時序選取器做為政策門檻條件的欄位,指定篩選器。如要瞭解如何使用 Monitoring API 建立以 SLO 為基礎的警告政策,請參閱「建立警告政策」。
只有部分時序選取器可用於 SLO,且只能用於警示政策。此外,使用 Google Cloud 控制台建立的以 SLO 為準的快訊政策一律會使用 select_slo_burn_rate
選取器。
在篩選器中使用時序選取器
如要擷取 SLO 的時間序列資料,篩選器必須指定時間序列選取器。SLO 資料並未以指標類型儲存,因此無法透過指定一組指標和受控資源類型的篩選器擷取。
名稱和引數
時序選取器的格式如下:
SELECTOR_NAME(SLO_NAME) SELECTOR_NAME(SLO_NAME, LOOKBACK_PERIOD)
選取器的名稱以 select_slo_
開頭,並且會接受一或兩個引數:
選取器的第一個引數是 SLO 的資源名稱,如下所示:
projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID
上述運算式包含三個變數:
- PROJECT_ID: Google Cloud 專案的名稱或編號。
- SERVICE_ID:服務名稱。
- SLO_ID:為服務定義的服務水準目標 ID。
如要瞭解如何找出 Google Cloud 專案的 SERVICE_ID 和 SLO_ID 欄位值,請參閱「使用 API」一文。
如果支援,第二個引數就是回溯期。如要瞭解回溯期,請參閱「錯誤預算快訊類型」。有效的時間單位為「ns」、「us」、「ms」、「s」、「m」、「h」。
舉例來說,select_slo_budget
選取器會採用 SLO_NAME 引數,因此使用此選取器的篩選器會如下所示:
select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
相反地,select_slo_burn_rate
選取器需要 SLO_NAME 和 LOOKBACK_PERIOD 引數,因此使用此選取器的篩選器會如下所示:
select_slo_burn_rate("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID", "3600s")
如需所有選取器的清單和說明,請參閱時序選取器。
使用選取器擷取資料
您可以透過在 timeSeries.list
方法的參考資料頁面上使用 API Explorer 工具,查詢時間序列資料。如要進一步瞭解這項工具,請參閱「API Explorer」。
舉例來說,如要擷取 SLO 預算的相關資訊,請在 APIs Explorer 工具中填寫下列欄位:
- name:
projects/PROJECT_ID
- filter:
select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
- interval.startTime:
2021-10-07T13:00:20-04:00
- interval.endTime:
2021-10-08T13:00:20-04:00
針對一個系統,在 PROJECT_ID 等變數替換為值並執行方法後,系統會傳回下列時間序列資料:
時序選取器
本節將列出可用於 SLO 的時間序列選取器,並說明其代表的意義。所有選取器都可以搭配 timeSeries.list
方法使用在篩選器中,以便擷取時序資料。但快訊政策不支援所有類型的事件。
select_slo_burn_rate
語法:select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)
「耗損率」時序選取器會傳回目前失敗率 (回溯間隔內的錯誤要求率) 與服務水準目標的可持續失敗率的比率。可持續的失敗率是指準確達到服務等級目標的率。
這個時間序列中的值可以介於 0 到無窮大之間:
- 值為 1 表示服務呈現理想的失敗率:不太冒險,也不太保守。
- 如果值大於 1,表示失敗率超過可持續的失敗率。值越高,服務等級目標違反規範的時間就越早。
- 如果值小於 1,表示目前的失敗率低於可持續的失敗率。
建議您使用兩種提醒政策來監控消耗率:快速消耗率政策可在消耗率飆升時發出提醒,而緩慢消耗率政策則可在消耗率逐漸增加時發出提醒。
您可以使用 API 或 Google Cloud 控制台,根據這項時序選取器建立及編輯快訊政策。
所有透過 Google Cloud 控制台建立的以服務等級目標為準的快訊政策,都會使用這個選取器擷取服務等級目標資料。
select_slo_health
語法:select_slo_health(SLO_NAME)
「服務水準目標健康度」時序資料可回答以下問題:「在指定的對齊週期內,良好要求與要求總數的比率為何?」服務的 SLI 會定義哪些項目算是良好要求。如要進一步瞭解 SLI,請參閱「總覽」一節。
這個時間序列會評估服務效能:如果服務的每個要求都正常,則這個時間序列中的資料點值為 1。隨著錯誤要求數量增加,資料點的值也會下降。
select_slo_compliance
語法:select_slo_compliance(SLO_NAME)
「服務水準目標遵循率」時間序列可回答以下問題:「自評估期間開始以來,良好單位與總單位的比率為何?」服務水準目標將評估期間定義為滾動式視窗或日曆時間範圍。單位可以是要求或時間範圍。詳情請參閱「要求和時間窗口 SLO 中的合規性」。
這份時序資料可讓您概略瞭解服務達成服務等級目標的程度。不會產生緊急的作業信號。
請勿在快訊政策中使用這項時序選取器。
select_slo_budget
語法:select_slo_budget(SLO_NAME)
「服務水準目標預算」時間序列可回答以下問題:「評估時剩餘的錯誤預算有多少?」錯誤預算可能以要求或分鐘為單位來評估,而剩餘的金額則會根據法規遵循期間是以曆法時間或滾動視窗為單位來評估而計算。詳情請參閱「錯誤預算」。
這個時序資料可評估服務可靠性的風險。如果錯誤預算小於零,則可能無法達到目前期間的服務等級目標。未達 SLO 可能會對組織的實際生產環境造成實際影響,具體取決於該組織如何管理可靠性。
請勿在快訊政策中使用這項時序選取器。
select_slo_budget_fraction
語法:select_slo_budget_fraction(SLO_NAME)
「服務水準目標預算百分比」時間序列可回答以下問題:「此時剩餘的錯誤預算,以負無限大到 1 的百分比表示。」
請勿在快訊政策中使用這項時序選取器。
select_slo_budget_total
語法:select_slo_budget_total(SLO_NAME)
「SLO 總預算」時序資料可回答以下問題:「根據服務自評估時間範圍開始以來的行為,目前預估的錯誤預算總量 (以要求或分鐘為單位) 為何?」SLO 將評估時間範圍定義為滾動視窗或日曆時間範圍。
請勿在快訊政策中使用這項時序選取器。
select_slo_counts
語法:select_slo_counts(SLO_NAME)
「SLO 計數」時序資料可回答「在特定對齊期間,良好和不良要求的數量為何?」這個問題。這個選取器提供記錄一般健康狀況的時序資料,適合擷取至長期儲存系統。
請勿在快訊政策中使用這項時序選取器。