En este documento se muestran ejemplos de políticas de alertas que personalizan el contenido de las notificaciones de alertas.
Antes de empezar
Familiarízate con la configuración de alertas de Personalized Service Health.
Consulta la referencia del esquema de los registros de Service Health para ver los campos que puedes definir en las notificaciones y las condiciones de las alertas.
Ejemplos de condiciones de alerta
En las siguientes secciones se muestran ejemplos de condiciones de alerta detalladas que puedes usar en Cloud Logging o Terraform.
Alertar sobre un nuevo incidente de un Google Cloud producto específico
Define ALERT_CONDITION
de la siguiente manera:
labels."servicehealth.googleapis.com/new_event"=true AND jsonPayload.detailedCategory = \"CONFIRMED_INCIDENT\" AND jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
El nombre del producto tiene el formato común Google Cloud . Consulta Estado del servicio de Google Cloud para ver un ejemplo del formato.
Alertas sobre nuevos incidentes en una región específica
Define ALERT_CONDITION
de la siguiente manera:
labels."servicehealth.googleapis.com/new_event"=true AND jsonPayload.detailedCategory = \"CONFIRMED_INCIDENT\" AND jsonPayload.impactedLocations =~ \"us-central1\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
El nombre de la ubicación tiene el formato habitual. Google Cloud Consulta Estado del servicio de Google Cloud para ver un ejemplo del formato.
Alertas sobre un nuevo incidente emergente de un producto específico
Define ALERT_CONDITION
de la siguiente manera:
labels."servicehealth.googleapis.com/new_event"=true AND jsonPayload.detailedCategory = \"EMERGING_INCIDENT\" AND jsonPayload.impactedProductIds =~ \"ix7u9beT8ivBdjApTif3\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
Alertas sobre cualquier actualización o cambio en un incidente
Define ALERT_CONDITION
de la siguiente manera:
jsonPayload.detailedCategory = \"CONFIRMED_INCIDENT\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
Alertar sobre cualquier novedad en los incidentes confirmados
Define ALERT_CONDITION
de la siguiente manera:
jsonPayload.state =~ \"ACTIVE\" AND jsonPayload.detailedCategory = \"CONFIRMED_INCIDENT\" AND jsonPayload.detailedState != \"EMERGING\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
Alertas sobre actualizaciones de estado o relevancia
Define ALERT_CONDITION
de la siguiente manera:
jsonPayload.detailedCategory = \"CONFIRMED_INCIDENT\" AND "labels.servicehealth.googleapis.com/updated_fields" =~ \"'state'\" OR labels."servicehealth.googleapis.com/updated_fields" =~ \"'relevance'\" AND jsonPayload.@type = \"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog\"
Notificación de alerta con todos los detalles del incidente
La siguiente notificación de alerta proporciona todos los detalles del incidente.
{
"displayName": "ALERT_NAME",
"combiner": "OR",
"conditions": [ {
"displayName": "Log match condition",
"conditionMatchedLog": {
"filter": "ALERT_CONDITION",
"labelExtractors": {
"description": "EXTRACT(jsonPayload.description)",
"impactedLocations": "EXTRACT(jsonPayload.impactedLocations)",
"impactedProducts": "EXTRACT(jsonPayload.impactedProducts)",
"startTime": "EXTRACT(jsonPayload.startTime)",
"state": "EXTRACT(jsonPayload.state)",
"detailedState": "EXTRACT(jsonPayload.detailedState)"
} } } ],
"documentation": {
"content": "# View details at [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}) \n## Description \n${log.extracted_label.description} \n## Impacted locations \n${log.extracted_label.impactedLocations} \n## Impacted products \n${log.extracted_label.impactedProducts} \n## Incident start time \n${log.extracted_label.startTime} \n## Event state \n${log.extracted_label.state} \n## Event detailed state \n ${log.extracted_label.detailedState}",
"mimeType": "text/markdown"
},
"notificationChannels": [ "NOTIFICATION_CHANNEL" ],
"enabled": true,
"alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "1800s" }
}
Los campos labelExtractors
y content
del ejemplo incluyen toda la información disponible sobre el incidente.
Notificación de alerta con un enlace al panel de control de Service Health
En el siguiente ejemplo se proporciona un enlace al panel de control Estado del servicio.
{
"displayName": "ALERT_NAME",
"combiner": "OR",
"conditions": [ {
"displayName": "Log match condition",
"conditionMatchedLog": {
"filter": "ALERT_CONDITION",
"labelExtractors": {
"description": "EXTRACT(jsonPayload.description)",
"impactedLocations": "EXTRACT(jsonPayload.impactedLocations)",
"impactedProducts": "EXTRACT(jsonPayload.impactedProducts)",
"startTime": "EXTRACT(jsonPayload.startTime)",
"state": "EXTRACT(jsonPayload.state)",
"detailedState": "EXTRACT(jsonPayload.detailedState)"
} } } ],
"documentation": {
"content": "# View details at [Service Health dashboard](https://console.cloud.google.com/servicehealth/eventDetails/projects%2F${resource.labels.resource_container}%2Flocations%2F${resource.labels.location}%2Fevents%2F${resource.labels.event_id})",
"mimeType": "text/markdown"
},
"notificationChannels": [ "NOTIFICATION_CHANNEL" ],
"enabled": true,
"alertStrategy": { "notificationRateLimit": { "period": "300s" }, "autoClose": "1800s" }
}