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. Il contenuto di questa pagina non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

Impossibile visualizzare o creare metriche

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

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

I dati dei log non sono presenti nella metrica

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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

  • Le nuove voci di log potrebbero non corrispondere al filtro della metrica. Una metrica basata su log recupera i dati dalle voci di log corrispondenti ricevute dopo la creazione della metrica. Logging non esegue il backfill della metrica dalle voci di log precedenti.

  • Le nuove voci di log potrebbero non contenere il campo corretto oppure i dati potrebbero non essere nel formato corretto per l'estrazione da parte della metrica di distribuzione. Verifica che i nomi dei campi e le espressioni regolari siano corretti.

  • I conteggi delle metriche potrebbero essere ritardati. 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 conteggiate in ritardo o non essere conteggiate affatto, perché i relativi timestamp sono troppo lontani nel passato o nel futuro. Se una voce di log viene ricevuta da Cloud Logging più di 24 ore nel passato o 10 minuti nel futuro, non verrà conteggiata nella metrica basata su 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 di 14:30 del 20 febbraio 2020 e un receivedTimestamp di 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 archiviate nei bucket di log; queste metriche non valutano le voci di log archiviate 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 su log non garantiscono la persistenza di ogni punto dati delle metriche. In genere, le lacune sono rare e di breve durata. Tuttavia, se hai una criterio di avviso che monitora una metrica basata su log, le lacune nei dati potrebbero causare una notifica errata. Le impostazioni che utilizzi nella criterio di avviso possono ridurre questa possibilità.

    Esempio: una voce di log "heartbeat" viene scritta ogni cinque minuti e una metrica basata su log conta il numero di voci di log "heartbeat". Una policy di avviso somma i conteggi in un intervallo di cinque minuti e ti invia una notifica quando il totale è inferiore a uno. Quando nella serie temporale manca un punto dati, la criterio di avviso inserisce un valore sintetico, che è un duplicato dell'ultimo campione e molto probabilmente è zero, quindi valuta la condizione. Di conseguenza, anche un singolo punto dati mancante potrebbe comportare un valore sommato pari a zero, il che fa sì che questa criterio di avviso invii una notifica.

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

Il tipo di risorsa è "undefined" in Cloud Monitoring

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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 una criterio di avviso o un grafico da una metrica basata su 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 Mappature per le risorse solo di Logging per determinare il tipo di risorsa monitorata da scegliere.

Le etichette in una notifica non vengono risolte

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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

Per risolvere il problema, procedi in uno dei seguenti modi:

  • Rimuovi il contenuto dell'etichetta estratta dalla documentazione. Le policy di avviso che monitorano le metriche basate su log non possono estrarre dati dalle voci di log.

  • Crea un avviso basato su log. Queste policy di avviso possono estrarre i dati dalla voce di log che causa l'attivazione della criterio di avviso.

Gli incidenti non vengono creati o sono falsi positivi

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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

  • Quando una criterio di avviso utilizza la logica minore di.
  • Quando una criterio di avviso si basa su una condizione percentile per una metrica di distribuzione.
  • Quando si verifica una lacuna nei dati delle metriche.

Gli incidenti falsi positivi possono verificarsi perché le voci di log possono essere inviate a Logging in ritardo. Ad esempio, i campi di 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 Logging potrebbe non avere il conteggio totale per una determinata voce di log fino a un momento successivo alla generazione delle voci di log. Questo è il motivo per cui una criterio di avviso che utilizza la logica minore di o basata su una condizione percentile per una metrica di distribuzione può produrre un avviso falso positivo: non tutte le voci di log sono state ancora conteggiate.

Tuttavia, le metriche basate su log sono alla fine coerenti perché una voce di log corrispondente a una metrica basata su log può essere inviata a Logging con un timestamp significativamente più vecchio o più recente del 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. Di conseguenza, 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 da garantire che vengano conteggiate più voci di log corrispondenti al filtro. Ad esempio, se una metrica basata su log conta 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 maggiore:

  • Se utilizzi la Google Cloud console, utilizza il Finestra mobile menu 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 basata su log ha troppe serie temporali

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

Il numero di serie temporali in una metrica dipende dal numero di combinazioni diverse di valori delle etichette. Il numero di serie temporali viene chiamato cardinalità della metrica. Il numero massimo di serie temporali per una metrica è 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. Devi evitare le metriche ad alta cardinalità.

Man mano che la cardinalità di una metrica aumenta, la metrica può essere soggetta a limitazione 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; consulta le sezioni di Cloud Monitoring nella pagina Prezzi di Google Cloud Observability.

A causa di un limite di 1.000.000 di serie temporali attive per risorsa monitorata, il sistema potrebbe limitare i dati delle metriche anche quando ha meno di 30.000 serie temporali attive. Per le metriche basate su log a livello di progetto, la risorsa è definita dalla risorsa nella voce di log. Per le metriche basate su log con ambito di bucket, la risorsa è logging_bucket.

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 dimensioni, 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 i valori solo dalle etichette di cardinalità nota, ad esempio i codici di stato con un insieme di valori noti.

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

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

Il nome della metrica non è valido

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

Le stringhe dei nomi delle metriche non devono superare i 100 caratteri e possono includere solo i seguenti caratteri:

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

    La 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 basate su log non sono corretti

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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 conteggiano ogni voce di log corrispondente al filtro della 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 nuovi tentativi. Il processo di nuovi tentativi 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 della metrica.

I valori delle etichette vengono troncati

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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

Impossibile eliminare una metrica basata su log personalizzata

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability deriva dai dati dei log (metriche basate su log). Non si applica ai dati delle metriche scritti da Google Cloud servizi o dalle tue applicazioni.

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

Per risolvere il problema, prova a:

  • Aggiornare la pagina Metriche basate su log nella Google Cloud console. Il messaggio di errore potrebbe essere visualizzato a causa di un problema di tempistica interna.

  • Identificare ed eliminare eventuali policy 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, elimina la metrica basata su log. Le metriche basate su log monitorate da una criterio di avviso non possono essere eliminate.