Jika menggunakan Terraform, Anda dapat menyiapkan pemberitahuan untuk peristiwa kondisi layanan yang muncul di Personalized Service Health. Dokumen ini menjelaskan caranya.
Sebelum memulai
Anda harus memiliki saluran notifikasi yang ditentukan dalam konfigurasi Terraform.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk
resource google_monitoring_notification_channel
.
Contoh konfigurasi
Contoh konfigurasi Terraform berikut mengaktifkan Status Layanan yang Dipersonalisasi dan pemberitahuan untuk semua insiden baru dan semua update.
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"
}
}
Layanan servicehealth.googleapis.com
mengacu pada Personalized Service Health, dan filter menarik semua peristiwa. Lihat
Referensi Service Health API untuk mengetahui kolom yang dapat Anda tetapkan.
Konfigurasi sebelumnya setara dengan memilih opsi Semua insiden, semua update dalam menyiapkan pemberitahuan dalam dasbor Status Layanan.
Lihat halaman berikut untuk mengetahui informasi selengkapnya tentang kolom yang dapat Anda tetapkan dalam kebijakan pemberitahuan:
Dokumentasi untuk resource
google_monitoring_alert_policy
.Contoh kondisi pemberitahuan yang dapat Anda tambahkan ke kolom
filter
konfigurasi Terraform dan menentukan kapan pemberitahuan dipicu.