錯誤預算消耗率的快訊政策會根據「擷取 SLO 資料」一文所述的時間序列選取器 select_slo_burn_rate
設定。還有其他時序選取器,您可以使用其中一些做為快訊政策的依據。如要進一步瞭解以 SLO 為基礎的快訊政策,請參閱「消耗率快訊」。
您可以使用 alertPolicies.create
方法建立快訊政策。如要瞭解這個方法的一般用法,請參閱「管理快訊政策」一文。
SLO 的快訊政策與其他指標門檻快訊政策類似,但有一個特定差異:條件 MetricThreshold
規格中的 filter
使用時序選取器,而非一組指標和監控資源類型。
以服務等級目標為準的快訊政策條件
警告政策至少須設有一個條件。如果是 SLO 條件,請使用 MetricThreshold
類型條件。
指標門檻條件可包含兩組時序設定:filter
和 aggregations
。由於 SLO 資料的擷取方式與其他時序資料不同,因此 SLO 條件中唯一使用的欄位是 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}
。如要瞭解如何查看 SLO 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