Risolvere i problemi relativi ai criteri di avviso

Questa pagina spiega perché alcuni criteri di avviso potrebbero comportarsi in modo diverso dal previsto e offre possibili rimedi per queste situazioni.

Per informazioni sulle variabili che possono influire su una criterio di avviso, ad esempio la scelta della finestra di nuovo test, consulta Comportamento delle policy di avviso basate su metriche.

La policy di utilizzo del disco crea avvisi imprevisti

Hai creato una criterio di avviso per monitorare la capacità "utilizzata" dei dischi nel tuo sistema. Questa policy monitora la metrica agent.googleapis.com/disk/percent_used. Prevedi di ricevere una notifica solo quando l'utilizzo di un disco fisico supera la soglia impostata nella condizione. Tuttavia, questa policy genera avvisi quando l'utilizzo del disco di ogni disco fisico è inferiore alla soglia.

Una causa nota di avvisi imprevisti per queste norme è che le condizioni non sono limitate al monitoraggio dei dischi fisici. Queste norme monitorano invece tutti i dischi, inclusi quelli virtuali come i dispositivi di loopback. Se un disco virtuale è costruito in modo che il suo utilizzo sia del 100%, verrà creato un avviso per la policy.

Ad esempio, considera il seguente output del comando Linux df, che mostra lo spazio su disco disponibile sui file system montati per un sistema:

$ df
/dev/root     9983232  2337708  7629140   24%  /
devtmpfs      2524080        0  2524080    0%  /dev
tmpfs         2528080        0  2528080    0%  /dev/shm
...
/dev/sda15     106858     3934   102924    4%  /boot/efi
/dev/loop0      56704    56704        0  100%  /snap/core18/1885
/dev/loop1     129536   129536        0  100%  /snap/google-cloud-sdk/150
...

Per questo sistema, è necessario configurare una criterio di avviso di utilizzo del disco per filtrare le serie temporali per i dispositivi di loopback /dev/loop0 e /dev/loop1. Ad esempio, potresti aggiungere il filtro device !=~ ^/dev/loop.*, che esclude tutte le serie temporali la cui etichetta device non corrisponde all'espressione regolare ^/dev/loop.*.

Cause comuni degli avvisi anomali

Hai creato un criterio di avviso e sembra che crei avvisi prematuramente o in modo errato.

Esistono diversi motivi per cui potresti ricevere una notifica di avvisi che sembrano errati:

  • Se si verifica una lacuna nei dati, in particolare per le policy di avviso con condizioni di soglia di assenza di metrica o "inferiore a", è possibile creare un avviso che sembra anomalo. A volte l'avviso non mostra il divario di dati e a volte il divario di dati viene corretto automaticamente:

    • Nei grafici, ad esempio, le lacune potrebbero non essere visualizzate perché i valori per i dati mancanti vengono interpolati. Anche quando mancano diversi minuti di dati, il grafico collega i punti mancanti per garantire la continuità visiva. Un divario di questo tipo nei dati sottostanti potrebbe essere sufficiente per unacriterio di avvisoo per creare un avviso.

    • I punti nelle metriche basate sui log possono arrivare in ritardo ed essere riempiti fino a 10 minuti nel passato. Il comportamento di backfill corregge efficacemente il divario, che viene colmato quando i dati arrivano. Pertanto, una lacuna in una metrica basata su log che non è più visibile potrebbe aver indotto unacriterio di avvisoo a creare un avviso.

  • Le condizioni di assenza di metriche e di soglia "minore di" vengono valutate in tempo reale, con un piccolo ritardo della query. Lo stato della condizione può cambiare tra il momento in cui viene valutata e il momento in cui l'avviso corrispondente è visibile in Monitoring.

  • Le condizioni configurate per creare un avviso su una singola misura possono generare avvisi che sembrano prematuri o errati. Per evitare questa situazione, verifica che siano necessarie più misurazioni prima che venga creato un avviso impostando la finestra di ritest di una condizione in modo che sia più del doppio della frequenza di campionamento della metrica.

    Ad esempio, se una metrica viene campionata ogni 60 secondi, imposta la finestra di test di nuovo su almeno 3 minuti. Se imposti la finestra di test ripetuto sul valore più recente o, in modo equivalente, su 0 secondi, una singola misurazione può causare la creazione di un avviso.

  • Quando viene modificata la condizione di una criterio di avviso, possono trascorrere diversi minuti prima che la modifica venga propagata nell'infrastruttura di avviso. Durante questo periodo di tempo, potresti ricevere notifiche di avvisi che soddisfano le condizioni criterio di avviso originali.

  • Quando arrivano i dati delle serie temporali, può essere necessario fino a un minuto prima che i dati si propaghino nell'intera infrastruttura di avvisi. Durante questo processo, una criterio di avviso potrebbe valutare una condizione come soddisfatta anche se i dati delle serie temporali non sono stati propagati al grafico delle serie temporali. Di conseguenza, potresti ricevere una notifica anche se il grafico non indica che la condizione è soddisfatta. Per ridurre la possibilità che si verifichi questa situazione, utilizza un periodo di allineamento di almeno cinque minuti.

  • La ridenominazione dell'etichetta App Hub metadata.system_labels.apphub_host_project_id in metadata.system_labels.apphub_application_container potrebbe comportare la generazione di alcuni nuovi avvisi e la mancata chiusura di alcuni avvisi aperti.

    Non devi fare niente. Gli avvisi si chiudono automaticamente quando i dati smettono di arrivare, dopo la scadenza della durata di chiusura automatica. Per maggiori informazioni, consulta la pagina Dati parziali delle metriche.

L'avviso non viene chiuso quando i dati smettono di arrivare

Segui le indicazioni riportate in Dati parziali delle metriche e configura una criterio di avviso per chiudere gli avvisi quando i dati smettono di arrivare. In alcuni casi, i dati smettono di arrivare, ma un avviso aperto non viene chiuso automaticamente.

Se la risorsa sottostante monitorata da una criterio di avviso contiene l'etichetta metadata.system_labels.state e se la policy non è scritta con il linguaggio di query di Monitoring, Monitoring può determinare lo stato della risorsa. Se lo stato di una risorsa è noto per essere disattivato, Monitoring non chiude automaticamente gli avvisi quando i dati smettono di arrivare. Tuttavia, puoi chiudere questi avvisi manualmente.

Impossibile visualizzare i dettagli dell'avviso a causa di un errore di autorizzazione

Vai alla pagina degli avvisi nella console Google Cloud e seleziona un avviso da visualizzare. Ti aspetti che la pagina dei dettagli sia aperta. Tuttavia, la pagina dei dettagli non si apre e viene visualizzato il messaggio "Autorizzazione negata".

Per visualizzare tutti i dettagli degli avvisi, ad eccezione dei dati delle metriche, verifica di disporre dei ruoli Identity and Access Management (IAM) di Monitoring Cloud Console Incident Viewer (roles/monitoring.cloudConsoleIncidentViewer) e Stackdriver Accounts Viewer (roles/stackdriver.accounts.viewer).

Per visualizzare tutti i dettagli degli avvisi, inclusi i dati delle metriche, e per poter confermare o chiudere gli avvisi, verifica di disporre dei ruoli IAM di Visualizzatore Monitoring (roles/monitoring.viewer) e Editor incidenti della console Google Cloud Monitoring (roles/monitoring.cloudConsoleIncidentEditor).

I ruoli personalizzati non possono concedere l'autorizzazione necessaria per visualizzare i dettagli degli avvisi.

L'avviso non viene creato quando la condizione è soddisfatta

Hai creato una criterio di avviso con una condizione. Il grafico per la criterio di avvisoo mostra che i dati monitorati violano la condizione, ma non hai ricevuto una notifica e non è stato creato un avviso.

Se uno dei seguenti criteri è vero dopo che la condizione criterio di avviso è soddisfatta, Monitoring non apre l'avviso.

  • La criterio di avviso è posticipata.
  • La criterio di avviso è disabilitata.
  • La criterio di avviso ha raggiunto il numero massimo di avvisi che può aprire contemporaneamente.
  • Lo stato della risorsa monitorata dal criterio di avviso è noto per essere disattivato. Il monitoraggio può determinare lo stato di una risorsa quando la risorsa contiene l'etichetta metadata.system_labels.state e quando la criterio di avviso non è scritta con il linguaggio di query di Monitoring.

L'elenco dei dettagli dell'avviso indica un progetto errato

Ricevi una notifica e il riepilogo delle condizioni elenca il progettoGoogle Cloud in cui è stato creato l'avviso, ovvero il progetto di definizione dell'ambito. Tuttavia, ti aspetti che l'avviso elenchi il nome del progetto Google Cloud che archivia la serie temporale che ha causato la creazione dell'avviso da parte di Monitoring.

Le opzioni di aggregazione specificate nella condizione di una criterio di avviso determinano il Google Cloud progetto a cui viene fatto riferimento in una notifica:

  • Quando le opzioni di aggregazione eliminano l'etichetta che memorizza l'ID progetto, le informazioni sull'avviso elencano il progetto di definizione dell'ambito. Ad esempio, se raggruppi i dati solo per zona, dopo il raggruppamento l'etichetta che memorizza l'ID progetto viene rimossa.

  • Quando le opzioni di aggregazione conservano l'etichetta che memorizza l'ID progetto, le notifiche di avviso includono il nome del progetto Google Cloud che memorizza la serie temporale che causa l'avviso. Per conservare l'etichetta ID progetto, includi l'etichetta project_id nel campo di raggruppamento oppure non raggruppare le serie temporali.

Impossibile chiudere manualmente un avviso

Hai ricevuto una notifica di avviso sul tuo sistema. Vai alla pagina dei dettagli dell'avviso e fai clic su Chiudi avviso. Ti aspetti che l'avviso venga chiuso, ma ricevi il messaggio di errore:

Unable to close alert with active conditions.

Puoi chiudere un avviso solo quando non vengono rilevate osservazioni nel periodo di avviso più recente. Il periodo di avviso, che in genere ha un valore predefinito di 5 minuti, è definito come parte della condizione del criterio di avviso ed è configurabile. Il messaggio di errore precedente indica che i dati sono stati ricevuti entro il periodo di avviso.

Il seguente errore si verifica quando non è possibile chiudere un avviso a causa di un errore interno:

Unable to close alert. Please try again in a few minutes.

Quando visualizzi il messaggio di errore precedente, puoi riprovare l'operazione di chiusura o lasciare che Monitoring chiuda automaticamente l'avviso.

Per saperne di più, consulta Gestione degli avvisi.

I criteri con più condizioni creano più notifiche

Hai creato un criterio di avviso che contiene più condizioni e le hai unite con un operatore logico AND. Ti aspetti di ricevere una notifica e che venga creato un avviso quando tutte le condizioni sono soddisfatte. Tuttavia, ricevi più notifiche e vedi che vengono creati più avvisi.

Monitoring invia una notifica e crea un avviso per ogni serie temporale che soddisfa una condizione. Di conseguenza, quando hai criteri di avviso con più condizioni, puoi potenzialmente ricevere una notifica e un avviso per ogni serie temporale che causa il soddisfacimento delle condizioni unite.

Ad esempio, hai una criterio di avviso con due condizioni, in cui ogni condizione monitora tre serie temporali. Il criterio invia una notifica solo quando sono soddisfatte entrambe le condizioni. Quando le condizioni della norma vengono soddisfatte, potresti ricevere da 2 (una serie temporale viene soddisfatta in ogni condizione) a 6 (tutte le serie temporali vengono soddisfatte in ogni condizione) notifiche e avvisi.

Non puoi configurare Monitoring per creare un singolo avviso e inviare una singola notifica.

Per saperne di più, consulta la pagina Quando Monitoring invia notifiche e crea avvisi.

La variabile per un'etichetta di metrica ha un valore null

Crea una criterio di avviso e aggiungi una variabile per un'etichetta della metrica alla sezione della documentazione. Ti aspetti che le notifiche mostrino il valore dell'etichetta a cui fa riferimento la variabile. Tuttavia, il valore della variabile è impostato su null.

Per risolvere il problema, prova quanto segue:

  • Verifica che le impostazioni di aggregazione per il criterio di avviso conservino l'etichetta che vuoi visualizzare.

    Ad esempio, supponiamo di creare una criterio di avviso che monitori i byte scritti sul disco dalle istanze VM. Vuoi che la documentazione elenchi il dispositivo che causa la notifica, quindi aggiungi al campo della documentazione quanto segue: device: ${metric.label.device}.

    Devi anche verificare che le impostazioni di aggregazione conservino il valore dell'etichetta device. Puoi conservare questa etichetta impostando la funzione di aggregazione su none o verificando che le selezioni di raggruppamento includano device.

  • Verifica la sintassi e l'applicabilità della variabile. Per informazioni sulla sintassi, consulta Annotare le notifiche con la documentazione definita dall'utente.

    Ad esempio, la variabile log.extracted_label.KEY è supportata solo per i criteri di avviso basati su log. Questa variabile viene sempre visualizzata come null quando un criterio di avviso monitora una metrica, anche una basata sui log.

Nessun nuovo dato dopo le modifiche alle definizioni delle metriche

Modifichi la definizione di una metrica definita dall'utente, ad esempio modificando il filtro utilizzato in una metrica basata sui log, e la criterio di avviso non riflette la modifica apportata alla definizione della metrica.

Per risolvere il problema, forza l'aggiornamento della norma di avviso modificando il nome visualizzato della norma.

La creazione di una policy di avviso non riesce nell'API a causa della metrica mancante

Di recente hai creato una metrica e poi hai fatto riferimento a questa metrica quando hai tentato di creare un criterio di avviso nell'API Cloud Monitoring. Tuttavia, il comando API non va a buon fine e mostra il seguente errore:

Error 404: Cannot find metric(s) that match type = "METRIC_NAME".
If a metric was created recently, it could take up to 10 minutes to become
available. Please try again soon.

Per risolvere il problema, attendi almeno dieci minuti e poi invia di nuovo la richiesta API.

Il grafico della policy di avviso non mostra la violazione della soglia

Hai ricevuto una notifica che ti informa che è stato aperto un avviso per la tua norma di avviso. Tuttavia, quando vai alla pagina dei dettagli della policy, il grafico non indica che la soglia è stata violata.

Per risolvere il problema, prova a ridurre l'intervallo di tempo del grafico. Puoi ridurre l'intervallo di tempo utilizzando il selettore dell'intervallo di tempo nella barra degli strumenti o evidenziando gli intervalli di tempo nel grafico con il puntatore.

I grafici hanno una risoluzione limitata e potrebbero non mostrare tutte le misurazioni per alcuni intervalli di tempo.