錯誤預算消耗率的快訊政策是以時間序列選取器 select_slo_burn_rate
為依據,詳情請參閱「擷取服務等級目標資料」。還有其他時間序列選取器,您可以將其中一些做為快訊政策的依據。如要瞭解以 SLO 為基礎的快訊政策,請參閱「根據消耗率發出快訊」。
您可以使用 alertPolicies.create
方法建立快訊政策。如需這個方法的一般用途,請參閱「管理快訊政策」。
SLO 的快訊政策與其他指標閾值快訊政策類似,但有一項特定差異:條件的 MetricThreshold
規格中的 filter
會使用時間序列選取器,而不是指標和受監控資源類型配對。
以服務等級目標為準的快訊政策條件
快訊政策至少須設有一個條件。如果是以 SLO 為依據的條件,請使用 MetricThreshold
類型的條件。
指標門檻條件可以包含兩組時間序列設定:filter
和 aggregations
。由於系統擷取服務水準目標資料的方式與其他時間序列資料不同,因此服務水準目標條件中只會使用 filter
欄位。
服務等級目標的條件會設定 comparison
、thresholdValue
、duration
和 trigger
欄位。
這個範例會建立條件,當消耗率超過正常率的 2 倍時,就會違反條件。結構如下所示:
"conditions": [ { "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2", "conditionThreshold": { "filter": DATA_RETRIEVAL_FILTER_FOR_SLO, "comparison":"COMPARISON_GT", "thresholdValue": 2, "duration": { "seconds":"0", }, }, } ],
如要設定 filter
欄位,您需要特定 SLO 的資源名稱。這個值的格式為 projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}
。如要瞭解如何找出服務等級目標 ID,請參閱「列出服務等級目標」。
如要建立消耗率快訊,請使用時間序列選取器 select_slo_burn_rate
。這個選取器會採用兩個值:目標 SLO 和回溯期。詳情請參閱 select_slo_burn_rate
的說明。
舉例來說,下列篩選器會取得目標 SLO 的消耗率,回溯期為 1 小時:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
其餘快訊政策
如要完成快訊政策,請為其餘欄位指定值:
displayName
:快訊政策的說明。combiner
:說明合併條件的邏輯。這項政策只有一個條件,因此AND
或OR
皆適用。notificationChannels
:快訊政策觸發時要使用的現有通知管道陣列。如要瞭解如何尋找及建立通知管道,請參閱「通知管道」。documentation
:違反條件時傳送的資訊,可協助收件者診斷問題。詳情請參閱Documentation
。
建立快訊政策
以下範例會使用 API 建立消耗率快訊政策。如要瞭解如何列出、修改及刪除快訊政策,請參閱「由 API 管理快訊政策」。
通訊協定
如要使用curl
建立快訊政策,請將 POST
訊息傳送至 https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies
端點,並在要求內容中提供快訊政策。要求主體中的 JSON 會說明警報政策,該政策使用以 select_slo_burn_rate
時間序列選取器為準的閾值條件,回溯期為一小時。
建立變數來保存要求主體:
CREATE_ALERT_POST_BODY=$(cat <<EOF { "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2", "combiner":"AND", "conditions": [ { "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2", "conditionThreshold": { "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")", "comparison":"COMPARISON_GT", "thresholdValue": 2, "duration": { "seconds":"0", }, }, } ], "notificationChannels": ["${NOTIFICATION_CHANNEL}", ], "documentation": { "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.", "mime_type": "text/markdown", }, } EOF )
將要求發布至端點:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies