如果您使用 Terraform,可以針對 Personalized Service Health 中顯示的服務健康狀態事件設定快訊。本文將說明如何操作。
事前準備
- 為要建立快訊的專案啟用 Service Health API。
- 在 Terraform 設定中定義通知管道。詳情請參閱
google_monitoring_notification_channel
資源的說明文件。
範例設定
下列 Terraform 設定範例會啟用 Personalized Service Health,並針對所有新事件和所有更新發出快訊。
provider "google" {
project = "PROJECT_ID"
}
resource "google_project_service" "project" {
service = "servicehealth.googleapis.com"
}
resource "google_monitoring_alert_policy" "alert_policy_all" {
display_name = "All incidents, all updates"
combiner = "OR"
enabled = "true"
conditions {
display_name = "test condition"
condition_matched_log {
filter = "resource.type = \"servicehealth.googleapis.com/Event\" AND jsonPayload.category = \"INCIDENT\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\""
label_extractors = {
state = "EXTRACT(jsonPayload.state)"
description = "EXTRACT(jsonPayload.description)"
impactedProducts = "EXTRACT(jsonPayload.impactedProducts)"
startTime = "EXTRACT(jsonPayload.startTime)"
title = "EXTRACT(jsonPayload.title)"
impactedLocations = "EXTRACT(jsonPayload.impactedLocations)"
}
}
}
documentation {
content = "### $${log.extracted_label.title}\nCheck out [Personalized Service Health dashboard](https://console.cloud.google.com/servicehealth/incidentDetails/projects%2F${resource.labels.resource_container}%2Flocations%2F${resource.labels.location}%2Fevents%2F${resource.labels.event_id}?project=${resource.labels.resource_container}) for more details.<br><br> Description: $${log.extracted_label.description}<br><br> Impacted products: $${log.extracted_label.impactedProducts}<br><br> Impacted locations: $${log.extracted_label.impactedLocations}<br><br> Incident start time: $${log.extracted_label.startTime}<br><br> State: $${log.extracted_label.state}"
mime_type = "text/markdown"
}
alert_strategy {
notification_rate_limit {
period = "300s"
}
}
notification_channels = ["projects/PROJECT_ID/notificationChannels/NOTIFICATION_CHANNEL"]
user_labels = { # Add any extra labels that might be helpful
scope = "all"
}
}
這項服務 servicehealth.googleapis.com
是指 Personalized Service Health,而篩選器會提取所有事件。如要瞭解可設定的欄位,請參閱 Service Health API 參考資料。
先前的設定等同於在服務健康狀態資訊主頁中設定快訊時,選擇「所有事件,所有更新」選項。
如要進一步瞭解可在快訊政策中設定的欄位,請參閱下列頁面:
google_monitoring_alert_policy
資源的說明文件。範例快訊條件 您可以將這些條件新增至 Terraform 設定的
filter
欄位,並定義快訊觸發時機。