Questa pagina descrive come configurare la documentazione criterio di avviso in modo che le notifiche forniscano ai responsabili della risposta agli incidenti risorse e informazioni aggiuntive per la risoluzione degli incidenti.
Struttura della documentazione
La documentazione di un criterio di avviso è costituita da un oggetto, contenuti e link. Puoi configurare la documentazione nella console Google Cloud , nell'API Cloud Monitoring e in Google Cloud CLI.
Soggetti
L'oggetto della documentazione viene visualizzato nell'oggetto delle notifiche per gli incidenti correlati alle criterio di avviso. I destinatari delle notifiche possono gestirle e ordinarle per oggetto.
Le righe dell'oggetto sono limitate a 255 caratteri. Se non definisci un oggetto nella documentazione, Cloud Monitoring determina la riga dell'oggetto. Le righe dell'oggetto supportano testo normale e variabili.
API Cloud Monitoring
Configura l'oggetto della notifica utilizzando il campo subject
del criterio di avviso documentation
.
Console Google Cloud
Configura l'oggetto della notifica utilizzando il campo Oggetto della notifica nella sezione Notifiche e nome della pagina Crea policy di avviso.
Contenuti
I contenuti della documentazione vengono visualizzati nei seguenti tipi di notifiche:
- Email, nella sezione Documentazione delle norme
- PagerDuty
- Pub/Sub
- Slack
- Webhook
Ti consigliamo di configurare i contenuti in modo che i responsabili della risposta agli incidenti possano visualizzare i passaggi di correzione e le informazioni sugli incidenti nelle notifiche relative alla tua criterio di avviso. Ad esempio, potresti configurare la documentazione in modo che includa un riepilogo dell'incidente e informazioni sulle risorse pertinenti.
I contenuti della documentazione supportano quanto segue:
- Testo normale
- Variabili
- Controlli specifici per il canale
API Cloud Monitoring
Configura i contenuti della documentazione utilizzando il campo content
del criterio di avviso documentation
.
Console Google Cloud
Configura i contenuti della documentazione utilizzando il campo Documentazione nella sezione Notifiche e nome della pagina Crea criterio di avviso.
Link
Puoi aggiungere link alla documentazione in modo che coloro che sono preposti a reagire agli eventi possano accedere a risorse come playbook, repository e Google Cloud dashboard da una notifica.
L'API Cloud Monitoring ti consente di definire un oggetto che contiene i link più pertinenti per i rispondenti. Sebbene la Google Cloud console non disponga di un campo specifico per i link, puoi aggiungere una sezione per i link nel corpo della documentazione.
API Cloud Monitoring
Puoi aggiungere link alla documentazione definendo uno o più oggetti
Link
nel campo links
del criterio di avviso
documentation
. Ogni oggetto Link
è costituito da un
display_name
e da un url
. Puoi inserire fino a tre link nella
documentazione.
La seguente configurazione mostra il campo links
con un oggetto Link
che rappresenta un URL a un playbook per incidenti. L'URL include una variabile
in modo che i destinatari delle notifiche possano accedere al playbook corretto in base alla
risorsa monitorata in cui si è verificato l'incidente:
"links" [
{
"displayName": "Playbook",
"url": "https://myownpersonaldomain.com/playbook?name=${resource.type}"
}
]
I link alla documentazione aggiunti utilizzando il campo Link
vengono visualizzati nei seguenti tipi di notifiche:
- Email, nella sezione Link rapidi
- PagerDuty
- Pub/Sub
- Webhook
Console Google Cloud
Puoi aggiungere link ai contenuti della documentazione includendoli nel campo Documentazione del criterio di avviso. Ad esempio, la documentazione seguente elenca un URL per un playbook del cliente:
### Troubleshooting and Debug References Playbook: https://myownpersonaldomain.com/playbook?name=${resource.type}
I link alla documentazione aggiunti utilizzando la console Google Cloud vengono visualizzati insieme al resto dei contenuti della documentazione nei seguenti tipi di notifiche:
- Email, nella sezione Documentazione delle norme
- PagerDuty
- Pub/Sub
- Slack
- Webhook
Markdown nei contenuti della documentazione
Puoi utilizzare Markdown per formattare i contenuti della documentazione. I contenuti della documentazione supportano il seguente sottoinsieme di tag Markdown:
- Intestazioni, indicate dai caratteri hash iniziali.
- Elenchi non ordinati, indicati dai caratteri iniziali più, meno o asterisco.
- Elenchi ordinati, indicati da un numero iniziale seguito da un punto.
- Testo in corsivo, indicato da trattini bassi o asterischi singoli intorno a una frase.
- Testo in grassetto, indicato da doppi trattini bassi o asterischi intorno a una frase.
- Link, indicati dalla sintassi
[link text](url)
. Per aggiungere link alla notifica, ti consigliamo di utilizzare l'API Cloud Monitoring e configurare l'oggettoLink
.
Per ulteriori informazioni su questo tagging, consulta qualsiasi riferimento Markdown, ad esempio la Guida Markdown.
Variabili nella documentazione
Per personalizzare il testo nella documentazione, puoi utilizzare variabili
nel formato ${varname}
. Quando la documentazione viene inviata con una notifica, la stringa ${varname}
viene sostituita con un valore estratto dalla risorsa Google Cloud corrispondente, come descritto nella tabella seguente.
Variabile | Valore |
---|---|
condition.name |
Il nome della risorsa REST della condizione, ad esempioprojects/foo/alertPolicies/1234/conditions/5678 . |
condition.display_name |
Il nome visualizzato di una condizione, ad esempio
CPU usage increasing rapidly . |
log.extracted_label.KEY |
Il valore dell'etichetta KEY , estratto
da una voce di log. Solo per i criteri di avviso basati su log; per ulteriori
informazioni,
consulta
Creare un criterio di avviso basato su log utilizzando l'API Monitoring. |
metadata.system_label.KEY |
Il valore dell'etichetta metadati risorsa fornita dal sistema KEY .1 |
metadata.user_label.KEY |
Il valore dell'etichetta metadati risorsa definita dall'utente KEY .1,3 |
metric.type |
Il tipo di metrica, ad esempiocompute.googleapis.com/instance/cpu/utilization . |
metric.display_name |
Il nome visualizzato per il tipo di metrica, ad esempio
CPU utilization . |
metric.label.KEY |
Il valore dell'etichetta della metrica Quando il valore della variabile Quando esegui la migrazione di una regola di avviso Prometheus, i modelli di campi di avviso Prometheus Puoi anche utilizzare |
metric.label.metadata_system_VALUE |
Fa riferimento a un'etichetta di sistema dei metadati PromQL,
dove VALUE è il nome dell'etichetta specifica, ad esempio
Esempio di utilizzo:
|
metric.label.metadata_user_VALUE |
Fa riferimento a un'etichetta utente dei metadati PromQL,
dove VALUE è il nome dell'etichetta specifica, ad esempio
Esempio di utilizzo: |
metric_or_resource.labels |
Questa variabile esegue il rendering di tutti i valori delle etichette delle metriche e delle risorse come un elenco ordinato di coppie Quando esegui la migrazione di una regola di avviso Prometheus, i modelli di campi di avviso Prometheus |
metric_or_resource.label.KEY |
Quando esegui la migrazione di una regola di avviso Prometheus, i modelli di campi di avviso Prometheus |
policy.name |
Il nome della risorsa REST del criterio, ad esempio
projects/foo/alertPolicies/1234 . |
policy.display_name |
Il nome visualizzato di un criterio, ad esempio
High CPU rate of change . |
policy.user_label.KEY |
Il valore dell'etichetta utente KEY .1
Le chiavi devono iniziare con una lettera minuscola. Le chiavi e i valori possono contenere solo lettere minuscole, cifre, trattini bassi e trattini. |
project |
L'ID del progetto di definizione dell'ambito di un ambito delle metriche, ad esempio
a-gcp-project . |
resource.type |
Il tipo di risorsa monitorata, ad esempio gce_instance . |
resource.project |
L'ID progetto della risorsa monitorata del criterio di avviso. |
resource.label.KEY |
Il valore dell'etichetta della risorsa
KEY .1,2,3Per trovare le etichette associate al tipo di risorsa monitorata, consulta Elenco delle risorse. |
1 Ad esempio, ${resource.label.zone}
viene sostituito con
il valore dell'etichetta zone
. I valori di queste variabili sono soggetti a
raggruppamento; per maggiori informazioni, consulta la sezione Valori di null
.
2 Per recuperare il valore dell'etichetta project_id
in una
risorsa monitorata nel criterio di avviso, utilizza ${resource.project}
.
3 Non puoi accedere alle etichette dei metadati delle risorse definite dall'utente utilizzando resource.label.KEY.
. Utilizza metadata.user_label.KEY
in alternativa.
Note sull'utilizzo
- Sono supportate solo le variabili nella tabella. Non puoi combinarli in espressioni più complesse, come
${varname1 + varname2}
. - Per includere la stringa letterale
${
nella documentazione, esegui l'escape del simbolo$
con un secondo simbolo$
e$${
viene visualizzato come${
nella documentazione. - Queste variabili vengono sostituite dai relativi valori solo nelle notifiche inviate tramite i canali di notifica. Nella console Google Cloud , quando viene visualizzata la documentazione, vengono mostrate le variabili, non i valori. Esempi nella console includono le descrizioni degli incidenti e l'anteprima della documentazione durante la creazione di un criterio di avviso.
- Verifica che le impostazioni di aggregazione della condizione non eliminino l'etichetta. Se l'etichetta viene eliminata, il valore dell'etichetta nella
notifica è
null
. Per ulteriori informazioni, vedi La variabile per un'etichetta della metrica è nulla.
null
valori
I valori delle variabili metric.*
, resource.*
e metadata.*
derivano dalle serie temporali. I loro valori possono essere null
se non vengono restituiti valori dalla query della serie temporale.
Le variabili
resource.label.KEY
emetric.label.KEY
possono avere valorinull
se il criterio di avviso utilizza l'aggregazione (riduzione) tra serie, ad esempio il calcolo della somma in tutte le serie temporali che corrispondono a un filtro. Quando utilizzi l'aggregazione tra serie, le etichette non utilizzate nel raggruppamento vengono eliminate e di conseguenza vengono visualizzate comenull
quando la variabile viene sostituita con il suo valore. Tutte le etichette vengono conservate quando non è presente un'aggregazione tra serie. Per ulteriori informazioni, vedi La variabile per un'etichetta della metrica è nulla.I valori delle variabili
metadata.*
sono disponibili solo se le etichette sono incluse esplicitamente nel filtro o nel raggruppamento di una condizione per l'aggregazione tra serie. ovvero devi fare riferimento all'etichetta dei metadati nel filtro o nel raggruppamento affinché abbia un valore per il modello.
Risoluzione variabile
Le variabili nei modelli di documentazione vengono risolte solo nelle notifiche inviate utilizzando i seguenti canali di notifica:
- Google Chat
- Slack
- Pub/Sub, schema JSON versione 1.2
- Webhook, schema JSON versione 1.2
- PagerDuty, schema JSON versione 1.2
Controlli del canale
Il testo nel campo della documentazione può includere anche caratteri speciali utilizzati dal canale di notifica stesso per controllare la formattazione e le notifiche.
Ad esempio, Slack utilizza @
per le menzioni. Puoi utilizzare @
per collegare
la notifica a un ID utente specifico. Le menzioni non possono includere nomi.
Supponiamo che tu includa una stringa come questa nel campo della documentazione:
<@backendoncall> Incident created based on policy ${policy.display_name}
Quando il campo della documentazione viene ricevuto dal canale Slack pertinente nell'ambito
della notifica, la stringa precedente fa sì che Slack invii un
messaggio aggiuntivo all'ID utente
backendoncall
. Il messaggio inviato da Slack all'utente
potrebbe contenere informazioni pertinenti della notifica, ad esempio:
"Incidente creato in base al criterio Tasso di variazione elevato della CPU".
Queste opzioni aggiuntive sono specifiche per i canali; per ulteriori informazioni su ciò che potrebbe essere disponibile, consulta la documentazione fornita dal fornitore del canale.
Esempio
L'esempio seguente mostra le versioni Google Cloud della console e dell'API Cloud Monitoring della documentazione del modello per una criterio di avviso sull'utilizzo della CPU. Questi esempi utilizzano un'email per il tipo di canale di notifica. I modelli di documentazione includono diverse variabili per riepilogare l'incidente e fare riferimento alle risorse REST per le condizioni e i criteri di criterio di avviso.
API Cloud Monitoring
"documentation": {
"content": "### CPU utilization exceeded\n\n### Summary\n\nThe ${metric.display_name} of the ${resource.type} ${resource.label.instance_id} in the project ${resource.project} has exceeded 5% for over 60 seconds.\n\n#### Additional resource information\n\nCondition resource name: ${condition.name} \nAlerting policy resource name: ${policy.name}",
"mimeType": "text/markdown",
"subject": "Alert: ${metric.display_name} exceeded",
"links": [
{
"displayName": "Playbook",
"url": "https://myownpersonaldomain.com/playbook?name=${resource.type}"
},
{
"displayName": "Repository with debug scripts",
"url": "https://altostrat.com"
},
{
"displayName": "Google Cloud dashboard",
"url": "https://example.com"
}
]
}
L'immagine seguente mostra come appare questo modello in una notifica via email:
Console Google Cloud
### CPU utilization exceeded #### Summary The ${metric.display_name} of the ${resource.type} ${resource.label.instance_id} in the project ${resource.project} has exceeded 5% for over 60 seconds. #### Additional resource information Condition resource name: ${condition.name} Alerting policy resource name: ${policy.name} #### Troubleshooting and Debug References Playbook: https://myownpersonaldomain.com/playbook?name=${resource.type} Repository with debug scripts: https://altostrat.com ${resource.type} dashboard: https://example.com
L'immagine seguente mostra come appare questo modello in una notifica via email: