有关错误预算消耗率的提醒政策基于时序选择器 select_slo_burn_rate
,如检索 SLO 数据中所述。还有其他时间序列选择器,您可以将其中一些用作提醒政策的基础。如需查看基于 SLO 的提醒政策的讨论,请参阅消耗率提醒。
您可以使用 alertPolicies.create
方法创建提醒政策。管理提醒政策中介绍了此方法的一般用法。
SLO 的提醒政策与其他指标阈值提醒政策类似,但它们在某一特定方面有所不同:条件 MetricThreshold
规范中的 filter
使用时间序列选择器,而不是一对指标和受监控的资源类型。
基于 SLO 的提醒政策的条件
一项提醒政策必须至少包含一个条件。对于基于 SLO 的条件,请使用 MetricThreshold
类型的条件。
指标阈值条件可以包含两对时间序列配置:filter
和 aggregations
。由于 SLO 数据的检索方式与其他时间序列数据不同,因此 SLO 条件中使用的唯一字段是 filter
字段。
SLO 条件要设置 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 的信息,请参阅列出 SLO。
如需针对消耗率创建提醒,请使用时序选择器 select_slo_burn_rate
。此选择器采用两个值:目标 SLO 和回溯期。如需了解详情,请参阅 select_slo_burn_rate
。
例如,以下过滤器可获取回溯期为 1 小时的目标 SLO 的消耗率:
"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 描述了一个提醒政策,该政策使用的阈值条件以回溯期为 1 小时的 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