Risolvi i problemi relativi alle metriche basate su log

Questa pagina fornisce informazioni sulla risoluzione dei problemi per scenari comuni quando usi metriche basate su log in Cloud Logging.

Impossibile visualizzare o creare metriche

Le metriche basate su log si applicano solo a un singolo progetto o a un bucket Logging all'interno di un progetto. Google Cloud Google Cloud Non puoi creare metriche basate sui log per altre risorse Google Cloud come account di fatturazione o organizzazioni. Le metriche basate su log vengono calcolate solo per i log nel progetto o nel bucket Google Cloud in cui vengono ricevuti.

Per creare metriche, devi disporre delle autorizzazioni Identity and Access Management corrette. Per maggiori dettagli, consulta Controllo dell'accesso con IAM: metriche basate su log.

Nella metrica mancano i dati dei log

Esistono diversi motivi per cui i dati potrebbero non essere presenti nelle metriche basate sui log:

  • Le nuove voci di log potrebbero non corrispondere al filtro della metrica. Una metrica basata su log riceve i dati dalle voci di log corrispondenti ricevute dopo la creazione della metrica. La registrazione non riempie la metrica delle voci di log precedenti.

  • Le nuove voci di log potrebbero non contenere il campo corretto o i dati potrebbero non essere nel formato corretto per l'estrazione in base alla metrica di distribuzione. Controlla che i nomi dei campi e le espressioni regolari siano corretti.

  • I conteggi delle metriche potrebbero subire ritardi. Anche se le voci di log conteggiabili vengono visualizzate in Esplora log, l'aggiornamento delle metriche basate su log in Cloud Monitoring potrebbe richiedere fino a 10 minuti.

  • Le voci di log visualizzate potrebbero essere contate in ritardo o non essere conteggiate affatto, perché sono timestamp troppo lontani nel passato o nel futuro. Se una voce di log viene ricevuta da Cloud Logging più di 24 ore prima o 10 minuti dopo, la voce di log non verrà conteggiata nella metrica basata sui log.

    Il numero di voci arrivate in ritardo viene registrato nella metrica basata su log logging.googleapis.com/logs_based_metrics_error_count.

    Esempio: una voce di log corrispondente a una metrica basata su log arriva in ritardo. Ha un timestamp delle 14:30 del 20 febbraio 2020 e un receivedTimestamp delle 14:45 del 21 febbraio 2020. Questa voce non verrà conteggiata nella metrica basata su log.

  • La metrica basata su log è stata creata dopo l'arrivo delle voci di log che la metrica potrebbe conteggiare. Le metriche basate su log valutano le voci di log man mano che vengono memorizzate nei bucket di log; queste metriche non valutano le voci di log memorizzate in Logging.

  • La metrica basata su log presenta lacune nei dati. Alcune lacune nei dati sono previste, perché i sistemi che elaborano i dati delle metriche basate sui log non garantiscono la persistenza di ogni punto dati della metrica. Quando si verificano interruzioni, in genere sono rare e di breve durata. Tuttavia, se hai un criterio di avviso che monitora una metrica basata su log, le lacune nei dati potrebbero causare una notifica errata. Le impostazioni utilizzate nelle criterio di avviso possono ridurre questa possibilità.

    Esempio: una voce di log "heartbeat" viene scritta ogni cinque minuti e una metrica basata sui log conteggia il numero di voci di log "heartbeat". Un criterio di avviso riepiloga i conteggi in un intervallo di cinque minuti e ti avvisa quando il totale è inferiore a uno. Quando nella serie temporale manca un punto dati, il criterio di avviso inserisce un valore sintetico, che è un duplicato del campione più recente e molto probabilmente è zero, quindi valuta la condizione. Pertanto, anche un singolo punto dati mancante potrebbe comportare che il valore totale sia zero, il che fa sì che questo criterio di avviso invii una notifica.

    Per ridurre il rischio di una notifica errata, configura il criterio in modo che conteggi più voci di log "heartbeat", non solo una.

Il tipo di risorsa è "undefined" in Cloud Monitoring

Alcuni tipi di risorse monitorate di Cloud Logging non vengono mappati direttamente ai tipi di risorse monitorate di Cloud Monitoring. Ad esempio, quando crei per la prima volta un criterio di avviso o un grafico da una metrica basata sui log, potresti notare che il tipo di risorsa è "undefined".

Il tipo di risorsa non è definito.

Il tipo di risorsa monitorata viene mappato a global o a un tipo di risorsa monitorata diverso in Cloud Monitoring. Consulta la sezione Mapping per le risorse solo logging per determinare il tipo di risorsa monitorata da scegliere.

Le etichette in una notifica non vengono risolte

Crea una metrica basata su log, quindi crea un criterio di avviso per monitorare questa metrica. Nel campo della documentazione del criterio di avviso, fai riferimento alle etichette estratte utilizzando una variabile del modulo ${log.extracted_label.KEY}, dove KEY è il nome che hai dato all'etichetta estratta. L'etichetta non viene risolta nella notifica.

Per risolvere il problema, esegui una delle seguenti operazioni:

  • Rimuovi i contenuti dell'etichetta estratti dalla documentazione. I criteri di avviso che monitorano le metriche basate su log non possono estrarre dati dalle voci di log.

  • Crea un avviso basato su log. Questi criteri di avviso possono estrarre i dati dalla voce di log che causa l'attivazione del criterio di avviso.

Gli incidenti non vengono creati o sono falsi positivi

Potresti riscontrare falsi positivi o situazioni in cui il monitoraggio non crea incidenti dalle metriche basate sui log perché il periodo di allineamento per la criterio di avvisoso è troppo breve. Potresti riscontrare falsi positivi nei seguenti scenari:

  • Quando un criterio di avviso utilizza la logica inferiore a.
  • Quando un criterio di avviso si basa su una condizione di percentile per una metrica di distribuzione.
  • Quando si verifica una lacuna nei dati della metrica.

Possono verificarsi incidenti falsi positivi perché le voci di log possono essere inviate a Logging in ritardo. Ad esempio, i campi log timestamp e receiveTimestamp possono avere un delta di minuti in alcuni casi. Inoltre, quando Logging archivia i log nei bucket di log, si verifica un ritardo intrinseco tra il momento in cui vengono generate le voci di log e il momento in cui Logging le riceve. Ciò significa che la registrazione potrebbe non avere il conteggio totale per una determinata voce di log fino a un momento successivo alla generazione delle voci di log. Per questo motivo, una criterio di avviso che utilizza la logica minore di o basata su una condizione percentile per una metrica di distribuzione può generare un avviso di falso positivo: non tutte le voci di log sono ancora state prese in considerazione.

Tuttavia, le metriche basate sui log sono coerenti nel tempo perché una voce di log che corrisponde a una metrica basata sui log può essere inviata a Logging con un timestamp significativamente precedente o successivo al receiveTimestamp del log.

Ciò significa che la metrica basata su log può ricevere voci di log con timestamp precedenti dopo che le voci di log esistenti con lo stesso timestamp sono già state ricevute da Logging. Pertanto, il valore della metrica deve essere aggiornato.

Affinché le notifiche rimangano accurate anche per i dati puntuali, ti consigliamo di impostare il periodo di allineamento per la condizione su almeno 10 minuti. In particolare, questo valore deve essere sufficientemente grande per garantire che vengano conteggiate più voci di log che corrispondono al filtro. Ad esempio, se una metrica basata sui log conteggia le voci di log "heartbeat", previste ogni N minuti, imposta il periodo di allineamento su 2N minuti o 10 minuti, a seconda di quale sia il valore più grande:

  • Se utilizzi la console Google Cloud , utilizza il menu Finestra mobile per impostare il periodo di allineamento.

  • Se utilizzi l'API, utilizza il campo aggregations.alignmentPeriod della condizione per impostare il periodo di allineamento.

La metrica ha troppe serie temporali

Il numero di serie temporali in una metrica dipende dal numero di combinazioni diverse di valori delle etichette. Il numero di serie temporali è chiamato cardinalità della metrica e non deve superare 30.000.

Poiché puoi generare una serie temporale per ogni combinazione di valori delle etichette, se hai una o più etichette con un numero elevato di valori, non è difficile superare le 30.000 serie temporali. Vuoi evitare metriche ad alta cardinalità.

Man mano che la cardinalità di una metrica aumenta, la metrica può essere limitata e alcuni punti dati potrebbero non essere scritti nella metrica. I grafici che mostrano la metrica possono essere lenti da caricare a causa del numero elevato di serie temporali che il grafico deve elaborare. Potresti anche sostenere costi per le chiamate API per eseguire query sui dati delle serie temporali. Per maggiori dettagli, consulta la sezione Costi di Cloud Monitoring.

Per evitare di creare metriche ad alta cardinalità:

  • Verifica che i campi delle etichette e le espressioni regolari dell'estrattore corrispondano a valori con una cardinalità limitata.

    Ad esempio, non memorizzare taglie, conteggi o durate nelle etichette. Inoltre, non memorizzare campi come URL, indirizzi IP o ID univoci, in quanto possono generare un numero elevato di serie temporali.

  • Evita di estrarre messaggi di testo che possono cambiare, senza limiti, come valori delle etichette.

  • Evita di estrarre valori numerici con cardinalità illimitata.

  • Estrai solo i valori dalle etichette di cardinalità nota, ad esempio i codici di stato con un insieme di valori noti.

Queste metriche basate sui log di sistema possono aiutarti a misurare l'effetto dell'aggiunta o rimozione di etichette sulla cardinalità della metrica:

Quando esamini queste metriche, puoi filtrare ulteriormente i risultati in base al nome della metrica. Per ulteriori dettagli, consulta Selezione delle metriche: filtro.

Il nome della metrica non è valido

Quando crei una metrica di conteggio o di distribuzione, scegli un nome che sia univoco tra le metriche basate su log nel tuo progetto Google Cloud .

Le stringhe nome-metrica non devono superare i 100 caratteri e possono includere solo i seguenti caratteri:

  • A-Z
  • a-z
  • 0-9
  • I caratteri speciali _-.,+!*',()%\/.

    Il carattere barra / indica una gerarchia di parti all'interno del nome della metrica e non può essere il primo carattere del nome.

I valori delle metriche non sono corretti

Noti che i valori riportati per una metrica basata su log a volte sono diversi dal numero di voci di log riportate da Esplora log.

Per ridurre al minimo la discrepanza:

  • Assicurati che le applicazioni non inviino voci di log duplicate. Le voci di log sono considerate duplicate quando hanno lo stesso timestamp e insertId. Esplora log elimina automaticamente le voci di log duplicate. Tuttavia, le metriche basate su log contano ogni voce di log corrispondente al filtro per la metrica.

  • Assicurati che una voce di log venga inviata a Cloud Logging quando il timestamp è inferiore a 24 ore nel passato o inferiore a 10 minuti nel futuro. Le voci di log i cui timestamp non rientrano in questi limiti non vengono conteggiate dalle metriche basate su log.

Non puoi eliminare la possibilità di log duplicati. Se si verifica un errore interno durante la gestione di una voce di log, Cloud Logging richiama un processo di riprova. Il processo di riprova potrebbe causare una voce di log duplicata. Quando esistono voci di log duplicate, il valore di una metrica basata su log potrebbe essere troppo grande perché queste metriche conteggiano ogni voce di log corrispondente al filtro per la metrica.

I valori delle etichette vengono troncati

I valori delle etichette definite dall'utente non devono superare 1024 byte.

Impossibile eliminare una metrica personalizzata dei log

Tentativo di eliminare una metrica personalizzata basata su log utilizzando la console Google Cloud . La richiesta di eliminazione non riesce e nella finestra di dialogo di eliminazione viene visualizzato il messaggio di errore There is an unknown error while executing this operation.

Per risolvere il problema, prova quanto segue:

  • Aggiorna la pagina Metriche basate su log nella console Google Cloud . Il messaggio di errore potrebbe essere visualizzato a causa di un problema di sincronizzazione interno.

  • Identifica ed elimina eventuali criteri di avviso che monitorano la metrica basata su log. Dopo aver verificato che la metrica basata su log non sia monitorata da una policy di avviso, eliminala. Le metriche basate sui log monitorate da un criterio di avviso non possono essere eliminate.