Questo documento descrive come organizzare e dare la priorità agli avvisi assegnando loro etichette definite dall'utente. Queste etichette sono configurate nelle policy di avviso e sono elencate nelle policy di avviso e negli avvisi. A seconda della configurazione, le etichette sono elencate anche in determinate notifiche.
Informazioni sulle etichette
Le etichette, che sono coppie chiave-valore, vengono utilizzate per allegare informazioni a una serie temporale, a una criterio di avviso, a un avviso o a una notifica. Ad esempio, le etichette di una serie temporale potrebbero identificare l'istanza di macchina virtuale (VM) specifica da cui sono stati raccolti i dati. Le etichette sono definite dall'utente o predefinite.
Etichette definite dall'utente
Le etichette definite dall'utente contengono le informazioni che specifichi. Queste etichette possono avere valori statici o dinamici:
Le etichette statiche definite dall'utente hanno valori che non possono essere modificati. Puoi creare etichette statiche definite dall'utente quando configuri una criterio di avviso utilizzando la console Google Cloud o l'API Cloud Monitoring. Per saperne di più, consulta i seguenti documenti:
Le etichette dinamiche definite dall'utente hanno valori che possono cambiare in base ai valori dei dati delle serie temporali. Puoi creare etichette dinamiche definite dall'utente quando configuri la condizione di un policy di avviso con PromQL. Per un esempio, consulta Esempio: aggiungi etichette definite dall'utente con valori dinamici.
Le chiavi delle etichette devono iniziare con una lettera minuscola. Sia le chiavi che i valori delle etichette possono contenere solo lettere minuscole, cifre, trattini bassi e trattini.
Etichette predefinite
Le etichette predefinite sono incluse nei descrittori delle risorse; queste etichette devono essere compilate quando vengono scritti i dati delle serie temporali. Queste etichette mostrano informazioni sulla metrica raccolta o sulla risorsa rispetto alla quale la metrica viene scritta. Ad esempio, le etichette di una serie temporale potrebbero identificare una macchina virtuale (VM), una zona, un progetto Google Cloud e un tipo di dispositivo. Quando Monitoring crea un avviso basato su questa serie temporale, l'avviso eredita queste etichette.
Etichette App Hub
App Hub associa etichette ai dati di log, metriche e traccia generati da un'applicazione e dai relativi servizi e workload. Queste etichette consentono all'infrastruttura Google Cloud di creare dashboard di applicazioni, servizi e workload che mostrano i dati di metriche e log. Per saperne di più, consulta uno dei seguenti documenti:
- Google Cloud Console: Associa una criterio di avviso a un'applicazione App Hub.
- API Cloud Monitoring: Associa una criterio di avviso a un'applicazione App Hub.
Come visualizzare le etichette
Puoi visualizzare le etichette di un criterio di avviso o di un avviso nella pagina dei dettagli di un avviso, nella pagina dei dettagli di un criterio di avviso e in alcune notifiche.
- Norme di avviso: le etichette statiche definite dall'utente sono elencate nella sezione Etichette utente. Le etichette dinamiche definite dall'utente e le etichette predefinite non sono visibili.
- Avvisi: le etichette statiche definite dall'utente sono elencate nella sezione Etichette delle norme, mentre le etichette dinamiche definite dall'utente sono elencate nella sezione Etichette delle metriche. Le etichette predefinite sono elencate nelle sezioni Etichette delle risorse monitorate ed Etichette delle metriche.
Notifiche: le etichette predefinite e quelle definite dall'utente sono elencate nei seguenti tipi di notifiche:
- Google Chat
- PagerDuty
- Pub/Sub
- Webhook
Esempio: aggiungi etichette definite dall'utente con valori dinamici
Puoi utilizzare PromQL per configurare un'etichetta in modo che il suo valore
cambi dinamicamente in base ai dati delle serie temporali. Ad esempio, vuoi
che i tuoi avvisi abbiano un'etichetta criticality il cui valore cambia
a seconda del valore della metrica di utilizzo della CPU monitorata:
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
"criticality", "CRITICAL", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
"criticality", "WARNING", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
"criticality", "INFO", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
"criticality", "GOOD", "", ""
)
La figura seguente illustra come le policy di avviso che utilizzano le query PromQL elaborano i dati delle serie temporali che monitorano:
Il gestore delle policy elabora i dati di utilizzo della CPU e restituisce una serie temporale che indica quando la condizione è soddisfatta. Nell'esempio precedente, la condizione viene soddisfatta quando l'utilizzo della CPU è almeno del 70%. Per ogni serie temporale di input, il gestore delle policy può generare una delle quattro serie temporali:
| Nome della serie temporale di output | Condizione soddisfatta | Descrizione |
|---|---|---|
| "GOOD" | No | Questa serie temporale ha le stesse etichette della serie temporale di input. Non ha un'etichetta di gravità. |
| "CRITICAL" | Sì | L'utilizzo della CPU è almeno del 90%. La serie temporale di output ha le stesse etichette della serie temporale "BUONA" più un'etichetta di gravità con il valore "CRITICA". |
| "AVVISO" | Sì | L'utilizzo della CPU è almeno dell'80%, ma inferiore al 90%. La serie temporale di output ha le stesse etichette della serie temporale "GOOD" più un'etichetta di gravità con il valore "WARNING". |
| "INFO" | Sì | L'utilizzo della CPU è almeno del 70%, ma inferiore all'80%. La serie temporale di output ha le stesse etichette della serie temporale "GOOD" più un'etichetta di gravità con il valore "INFO". |
I dati delle serie temporali generati dal gestore delle policy sono l'input per
Alert Manager, che determina quando vengono creati e
chiusi gli avvisi. Per determinare quando chiudere un avviso, il gestore degli avvisi
utilizza i valori dei campi duration, evaluationMissingData
e autoClose.
Best practice
Per verificare che sia aperto al massimo un avviso alla volta quando crei etichette i cui valori sono impostati dinamicamente:
Nell'oggetto
MetricThreshold, sostituisci i valori predefiniti per i seguenti campi:- Campo
duration: impostalo su un valore diverso da zero. - Campo
evaluationMissingData: impostalo in modo che gli avvisi vengano chiusi quando i dati smettono di arrivare. Quando utilizzi l'API Cloud Monitoring, imposta questo campo suEVALUATION_MISSING_DATA_INACTIVE. Quando utilizzi la console Google Cloud , imposta il campo su "Punti dati mancanti considerati come valori che non violano la condizione della policy".
- Campo
Nell'oggetto
AlertStrategy, imposta il campoautoClosesul valore minimo di 30 minuti. Quando utilizzi l'API Cloud Monitoring, imposta questo campo su30m.
Per maggiori informazioni, consulta la pagina Dati parziali delle metriche.
Flusso di avviso
Supponiamo che le misurazioni dell'utilizzo della CPU siano inferiori al 70% quando viene creata la criterio di avvisoo. La seguente sequenza illustra come vengono aperti e chiusi gli avvisi:
Poiché le misurazioni dell'utilizzo della CPU sono inferiori al 70%, il gestore dei criteri genera la serie temporale "BUONO" e non vengono aperti avvisi.
Successivamente, supponiamo che l'utilizzo della CPU aumenti al 93%. Il gestore delle policy interrompe la generazione dei dati delle serie temporali "BUONO" e inizia a generare dati per le serie temporali "CRITICO".
Il gestore degli avvisi visualizza una nuova serie temporale "CRITICA" che soddisfa la condizione e poi apre un avviso. La notifica include l'etichetta di gravità con il valore
CRITICAL.Supponiamo che l'utilizzo della CPU scenda al 75%. Il gestore delle policy interrompe la generazione della serie temporale "CRITICA" e inizia a generare la serie temporale "INFO".
Il gestore degli avvisi vede una nuova serie temporale "INFO" che soddisfa la condizione e poi apre un avviso. La notifica include l'etichetta di gravità con un valore di
INFO.Alert Manager rileva che non arrivano dati per la serie temporale "CRITICA" e che è aperto un avviso per questa serie temporale. Poiché il criterio è configurato per chiudere gli avvisi quando i dati smettono di arrivare, Alert Manager chiude l'avviso associato alla serie temporale "CRITICA". Pertanto, rimane aperto solo l'avviso la cui etichetta di gravità ha un valore di
INFO.Infine, supponiamo che l'utilizzo della CPU scenda al 45%. Questo valore è inferiore a tutte le soglie, quindi il gestore dei criteri smette di generare la serie temporale "INFO" e inizia a generare la serie temporale "GOOD".
Il gestore degli avvisi nota che non arrivano dati per la serie temporale "INFO" e che è aperto un avviso per questa serie temporale. Poiché il criterio utilizza le impostazioni consigliate, l'avviso viene chiuso.
Se non utilizzi il valore consigliato per il campo evaluationMissingData,
quando i dati smettono di arrivare, gli avvisi aperti non vengono chiusi immediatamente.
Il risultato è che potresti visualizzare più avvisi aperti per la stessa
serie temporale di input. Per maggiori informazioni, consulta la pagina Dati parziali delle metriche.
Passaggi successivi
- Crea policy di avviso utilizzando l'API Monitoring
- Crea criteri di avviso utilizzando PromQL
- Gestione dei dati parziali delle metriche