Annotare gli incidenti con le etichette

Questo documento descrive come organizzare e dare la priorità ai incidenti assegnando loro etichette definite dall'utente. Queste etichette sono configurate nei criteri di avviso e sono elencate negli incidenti e nei criteri di avviso. A seconda della configurazione, le etichette vengono elencate anche in determinate notifiche.

Informazioni sulle etichette

Le etichette, che sono coppie chiave-valore, vengono utilizzate per associare informazioni a una serie temporale, a un criterio di avviso, a un incidente o a una notifica. Ad esempio, le etichette di una serie temporale potrebbero identificare l'istanza specifica della macchina virtuale (VM) 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 specificate. Queste etichette possono avere valori statici o dinamici:

Le chiavi delle etichette devono iniziare con una lettera minuscola. Sia le chiavi di etichetta sia i valori dell'etichetta 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 in base alla quale 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 il monitoraggio crea un incidente in base a questa serie temporale, l'incidente eredita queste etichette.

Come visualizzare le etichette

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

  • Criteri di avviso: le etichette definite dall'utente statiche sono elencate nella sezione Etichette utente. Le etichette predefinite e quelle dinamiche definite dall'utente non sono visibili.
  • Incidenti: le etichette definite dall'utente statiche sono elencate nella sezione Etichette dei criteri, mentre le etichette definite dall'utente dinamiche sono elencate nella sezione Etichette delle metriche. Le etichette predefinite sono elencate nelle sezioni Etichette delle risorse monitorate e Etichette delle metriche.
  • Notifiche: le etichette predefinite e quelle definite dall'utente sono elencate nei seguenti tipi di notifiche:

    • Email
    • Google Chat
    • PagerDuty
    • Pub/Sub
    • Webhook

Esempio: aggiungi etichette definite dall'utente con valori dinamici

Puoi utilizzare MQL per configurare un'etichetta in modo che il suo valore cambi dinamicamente in base ai dati delle serie temporali. Ad esempio, vuoi che gli incidenti abbiano un'etichetta criticality il cui valore cambia in base al valore della metrica di utilizzo della CPU monitorata:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
    add[
      criticality:
        if(val() >= 90 '%', 'CRITICAL',
          if(val() >= 80 '%', 'WARNING',
            if(val() >= 70 '%', 'INFO', 'GOOD')))
    ]
| condition val() >= 70 '%'

La figura seguente illustra in che modo i criteri di avviso che utilizzano le query MQL elaborano i dati delle serie temporali monitorati:

Illustrazione di come i criteri di avviso elaborano le serie temporali monitorate.

Il gestore dei criteri elabora i dati sull'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 dei criteri può generare una di quattro serie temporali:

Nome della serie temporale di output Condizione soddisfatta Descrizione
"BUONO" No Questa serie temporale ha le stesse etichette della serie temporale di input. Non ha un'etichetta di gravità.
"CRITICAL" L'utilizzo della CPU è almeno del 90%. La serie temporale di output ha le stesse etichette della serie temporale "BUONO", oltre a un'etichetta di gravità con il valore "CRITICO".
"AVVERTENZA" L'utilizzo della CPU è almeno dell'80%, ma inferiore al 90%. La serie temporale di output ha le stesse etichette della serie temporale "BUONO", oltre a un'etichetta di gravità con il valore "AVVERTIMENTO".
"INFO" L'utilizzo della CPU è almeno del 70%, ma inferiore all'80%. La serie temporale di output ha le stesse etichette della serie temporale "BUONO", oltre a un'etichetta di gravità con il valore "INFO".

I dati delle serie temporali generati dal gestore dei criteri vengono inseriti nell'incident manager, che determina quando vengono creati e chiusi gli incidenti. Per determinare quando chiudere un incidente, l'amministratore degli incidenti utilizza i valori dei campi duration, evaluationMissingData e autoClose.

Best practice

Per assicurarti che sia aperto al massimo un incidente alla volta quando crei etichette cuyos valori vengono impostati dinamicamente:

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

    • Campo duration: impostato su un valore diverso da zero.
    • Campo evaluationMissingData: impostato in modo che gli incidenti vengano chiusi quando i dati non arrivano più. Quando utilizzi l'API Cloud Monitoring, imposta questo campo su EVALUATION_MISSING_DATA_INACTIVE. Quando utilizzi la console Google Cloud, imposta il campo su "Punti dati mancanti trattati come valori che non violano la condizione del criterio".
  • 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 ulteriori informazioni, consulta Dati delle metriche parziali.

Flusso di incidenti

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

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

  2. Supponiamo che l'utilizzo della CPU aumenti al 93%. Il gestore dei criteri interrompe la generazione dei dati delle serie temporali "BUONI" e inizia a generare dati per la serie temporale "CRITICA".

    L'incident manager vede una nuova serie temporale "CRITICA" che soddisfa la condizione e apre un incidente. La notifica include l'etichetta di gravità con un valore di CRITICAL.

  3. Supponiamo che l'utilizzo della CPU scenda al 75%. Il gestore dei criteri interrompe la generazione della serie temporale "CRITICAL" e inizia a generare la serie temporale "INFO".

    Il gestore degli incidenti vede una nuova serie temporale "INFO" che soddisfa la condizione e apre un incidente. La notification include l'etichetta di gravità con un valore di INFO.

    Il gestore degli incidenti vede che non arrivano dati per la serie temporale "CRITICA" e che è aperto un incidente per questa serie temporale. Poiché il criterio è configurato per chiudere gli incidenti quando i dati non arrivano più, il gestore degli incidenti chiude l'incidente associato alla serie temporale "CRITICO". Pertanto, rimane aperto solo l'incidente la cui etichetta di gravità ha un valore INFO.

  4. 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 "BUONO".

    Il gestore degli incidenti vede che non arrivano dati per la serie temporale "INFO" e che è aperto un incidente per questa serie temporale. Poiché il regolamento utilizza le impostazioni consigliate, l'incidente è stato chiuso.

Se non utilizzi il valore consigliato per il campo evaluationMissingData, quando i dati non arrivano più, gli incidenti aperti non vengono chiusi immediatamente. Di conseguenza, potresti visualizzare più incidenti aperti per la stessa serie temporale di input. Per ulteriori informazioni, consulta Dati delle metriche parziali.

Passaggi successivi