Annotare gli avvisi con le etichette

Le etichette definite dall'utente nelle policy di avviso in Cloud Monitoring ti consentono di organizzare e dare la priorità ai tuoi avvisi. Quando configuri queste etichette, Monitoring le visualizza nelle policy di avviso e negli avvisi e può includerle nelle notifiche.

Informazioni sulle etichette

Le etichette, che sono coppie chiave-valore, vengono utilizzate per allegare informazioni a una serie temporale, una criterio di avviso, un avviso o 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 informazioni che specifichi. Queste etichette possono avere valori statici o dinamici:

Le chiavi di etichetta 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 su cui viene scritta la metrica. Ad esempio, le etichette di una serie temporale potrebbero identificare una macchina virtuale (VM), una zona, un Google Cloud progetto e un tipo di dispositivo. Quando Monitoring crea un avviso basato su quella serie temporale, l'avviso eredita queste etichette.

Etichette di App Hub

App Hub associa le etichette ai dati di log, metriche e tracce generati da un'applicazione e dai relativi servizi e workload. Queste etichette consentono all' Google Cloud infrastruttura 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:

Come visualizzare le etichette

Puoi visualizzare le etichette di una criterio di avviso o di un avviso nella pagina dei dettagli di un avviso, nella pagina dei dettagli di una policy di avviso, e in alcune notifiche.

  • Policy 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 policy e le etichette dinamiche definite dall'utente sono elencate nella sezione Etichette metriche. Le etichette predefinite sono elencate nelle sezioni Etichette risorse monitorate ed Etichette metriche.
  • Notifiche: le etichette predefinite e le etichette definite dall'utente sono elencate nei seguenti tipi di notifica:

    • Email
    • 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 gli 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:

Illustrazione di come le policy di avviso elaborano le serie temporali monitorate.

Il gestore delle policy elabora i dati di utilizzo della CPU e genera una serie temporale che indica quando la condizione è soddisfatta. Nell'esempio precedente, la condizione è 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 "GOOD" più un'etichetta di gravità con il valore "CRITICAL".
"WARNING" 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 del gestore degli avvisi, 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 al massimo un avviso sia aperto alla volta quando crei etichette i cui valori sono impostati dinamicamente, procedi nel seguente modo:

  • Nell'oggetto MetricThreshold, sostituisci i valori predefiniti dei seguenti campi:

    • Campo duration: imposta un valore diverso da zero.
    • Campo evaluationMissingData: imposta in modo che gli avvisi vengano chiusi quando i dati smettono di arrivare. Quando utilizzi l'API Cloud Monitoring, imposta questo campo su EVALUATION_MISSING_DATA_INACTIVE. Quando utilizzi la Google Cloud console, imposta il campo su "Punti dati mancanti considerati come valori che non violano la condizione della policy".
  • Nell'oggetto AlertStrategy, imposta il campo autoClose sul valore minimo di 30 minuti. Quando utilizzi l'API Cloud Monitoring, imposta questo campo su 30m.

Per saperne di più, consulta Dati metrici parziali.

Flusso di avviso

Supponiamo che le misurazioni dell'utilizzo della CPU siano inferiori al 70% quando viene creata la criterio di avviso. La seguente sequenza illustra come vengono aperti e chiusi gli avvisi:

  1. Poiché le misurazioni dell'utilizzo della CPU sono inferiori al 70%, il gestore delle policy genera la serie temporale "GOOD" e non vengono aperti avvisi.

  2. Supponiamo ora che l'utilizzo della CPU aumenti fino al 93%. Il gestore delle policy smette di generare i dati delle serie temporali "GOOD" e inizia a generare dati per la serie temporale "CRITICAL".

    Il gestore degli avvisi vede una nuova serie temporale "CRITICAL" che soddisfa la condizione e quindi apre un avviso. La notifica include l'etichetta di gravità con il valore CRITICAL.

  3. Supponiamo che l'utilizzo della CPU scenda al 75%. Il gestore delle policy smette di generare la serie temporale "CRITICAL" e inizia a generare la serie temporale "INFO".

    Il gestore degli avvisi vede una nuova serie temporale "INFO" che soddisfa la condizione e quindi apre un avviso. La notifica include l'etichetta di gravità con il valore INFO.

    Il gestore degli avvisi rileva che non arrivano dati per la serie temporale "CRITICAL" e che è aperto un avviso per quella serie temporale. Poiché la policy è configurata per chiudere gli avvisi quando i dati smettono di arrivare, il gestore degli avvisi chiude l'avviso associato alla serie temporale "CRITICAL". Di conseguenza, rimane aperto solo l'avviso la cui etichetta di gravità ha un valore di INFO.

  4. Infine, supponiamo che l'utilizzo della CPU scenda al 45%. Questo valore è inferiore a tutte le soglie, quindi il gestore delle policy smette di generare la serie temporale "INFO" e inizia a generare la serie temporale "GOOD".

    Il gestore degli avvisi rileva che non arrivano dati per la serie temporale "INFO" e che è aperto un avviso per quella serie temporale. Poiché la policy 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. Di conseguenza, potresti visualizzare più avvisi aperti per la stessa serie temporale di input. Per saperne di più, consulta Dati metrici parziali.

Passaggi successivi