Se utilizzi Terraform, puoi configurare avvisi per gli eventi relativi all'integrità del servizio che vengono visualizzati in Personalized Service Health. Questo documento spiega come.
Prima di iniziare
Devi avere un canale di notifica definito nella configurazione di Terraform.
Per ulteriori informazioni, consulta la documentazione della risorsa google_monitoring_notification_channel
.
Configurazione di esempio
Il seguente esempio di configurazione di Terraform attiva Personalized Service Health e gli avvisi per tutti i nuovi incidenti e tutti gli aggiornamenti.
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"
}
}
Il servizio servicehealth.googleapis.com
si riferisce a Personalized Service Health e il
filtro estrae tutti gli eventi. Consulta la documentazione di riferimento dell'API Service Health per i campi che puoi impostare.
La configurazione precedente è equivalente alla scelta dell'opzione Tutti gli incidenti, tutti gli aggiornamenti durante la configurazione di un avviso nella dashboard Stato del servizio.
Per ulteriori informazioni sui campi che puoi impostare nel criterio di avviso, consulta le seguenti pagine:
Documentazione per la risorsa
google_monitoring_alert_policy
.Esempi di condizioni di avviso che puoi aggiungere al campo
filter
della configurazione Terraform e definire quando viene attivato l'avviso.