SLO 資料會儲存在時間序列中。如要擷取 SLO 時間序列,請在 timeSeries.list
方法的 filter
參數中指定時間序列選取器,或在 Metrics Explorer 中使用直接篩選模式。
以服務等級目標為準的快訊政策
如果您使用 Cloud Monitoring API 建立快訊政策,請在政策的門檻條件中,使用時間序列選取器做為欄位來指定篩選器。如要瞭解如何使用 Monitoring API 建立以 SLO 為基礎的快訊政策,請參閱「建立快訊政策」。
只有部分適用於 SLO 的時間序列選取器,可用於快訊政策。此外,使用 Google Cloud 控制台
建立的以服務等級目標為準的快訊政策,一律會使用 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
方法參考資料頁面上的 APIs Explorer 工具。如要瞭解這項工具,請參閱 API Explorer。
舉例來說,如要擷取有關 SLO 預算的資訊,請在 APIs Explorer 工具中填寫下列欄位:
- 名稱:
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,請參閱總覽。
這個時間序列會評估服務效能:如果對服務的每項要求都良好,這個時間序列中的資料點值就會是 1。隨著錯誤要求數量增加,資料點的值會下降。
select_slo_compliance
語法:select_slo_compliance(SLO_NAME)
「SLO 達標」時間序列會回答「自評估時間範圍開始以來,良好單位與總單位的比率為何?」這個問題。SLO 會將評估時間範圍定義為滾動時間範圍或日曆時間範圍。單位可以是要求或時間範圍。詳情請參閱「以要求和視窗為準的 SLO 達標情形」。
這項時間序列可讓您大致瞭解服務達成服務等級目標的程度。不會產生作業緊急訊號。
請勿在快訊政策中使用這個時間序列選取器。
select_slo_budget
語法:select_slo_budget(SLO_NAME)
「服務等級目標預算」時間序列會回答「評估時剩餘的錯誤預算有多少?」這個問題。錯誤預算可以要求或分鐘為單位計算,而剩餘量則會根據評估期間是以日曆時間還是滾動視窗計算而定。詳情請參閱「錯誤預算」。
這項時間序列會評估服務穩定性的風險。如果錯誤預算低於零,可能就無法在目前期間內達到 SLO。視機構管理可靠性的方式而定,未達 SLO 可能會對機構的生產環境造成實際影響。
請勿在快訊政策中使用這個時間序列選取器。
select_slo_budget_fraction
語法:select_slo_budget_fraction(SLO_NAME)
「服務等級目標預算比例」時間序列會回答「此時剩餘的錯誤預算 (以負無限大到 1 的比例表示) 為何?」這個問題。
請勿在快訊政策中使用這個時間序列選取器。
select_slo_budget_total
語法:select_slo_budget_total(SLO_NAME)
「服務水準目標總預算」時間序列會根據服務在評估時間範圍開始後的行為,回答「目前預計可用的錯誤預算總額 (以要求或分鐘為單位) 為何?」這個問題。服務水準目標會將評估時間範圍定義為滾動式時間視窗或日曆時間範圍。
請勿在快訊政策中使用這個時間序列選取器。
select_slo_counts
語法:select_slo_counts(SLO_NAME)
「SLO counts」時間序列會回答「在指定對齊期間內,良好和不良要求的數量各是多少?」這個問題。這個選取器會提供記錄一般健康狀態的時間序列,適合用於長期儲存系統。
請勿在快訊政策中使用這個時間序列選取器。