Risolvi i problemi relativi alle metriche basate su log

Per diagnosticare e risolvere i problemi relativi alle metriche basate su log in Cloud Logging, ad esempio dati mancanti, conteggi ritardati o avvisi di falsi positivi, utilizza le indicazioni per la risoluzione dei problemi riportate in questa pagina.

I contenuti di questa pagina si applicano solo ai dati delle metriche derivati dai log. Non si applica ai dati delle metriche scritti direttamente dai servizi Google Cloud o dalle tue applicazioni.

Impossibile visualizzare o creare metriche

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

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

La metrica non contiene dati di log

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

Esistono diversi possibili motivi per cui i dati nelle metriche basate su log potrebbero essere mancanti:

  • 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. Logging non esegue il backfill della metrica dalle 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 da parte della metrica di distribuzione. Verifica 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 conteggiate in ritardo o non essere conteggiate affatto, perché hanno un timestamp troppo lontano 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 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 alle 14:30 del 20 febbraio 2020 e un receivedTimestamp alle 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 archiviate nei bucket di log, ma non quelle 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. Quando si verificano, le lacune sono in genere 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 utilizzate nella criterio di avviso possono ridurre questa possibilità.

    Esempio: ogni cinque minuti viene scritta una voce di log "heartbeat" 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 avvisa 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 è pari a zero, quindi valuta la condizione. Pertanto, 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 falsa, 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 ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud 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 vedere che il tipo di risorsa è "non definito".

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 le mappature per le risorse solo 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 ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud o dalle tue applicazioni.

Devi creare una metrica basata su log e poi una criterio di avviso per monitorarla. Nel campo della documentazione della criterio di avviso, fai riferimento alle etichette estratte utilizzando una variabile nel formato ${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 i contenuti dell'etichetta estratti 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 dati dalla voce di log che ne attiva l'attivazione.

Gli avvisi non vengono creati o sono falsi positivi

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

Potresti ricevere avvisi di falso positivo o situazioni in cui Monitoring non crea avvisi 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 inferiore a.
  • Quando una criterio di avviso si basa su una condizione di percentile per una metrica di distribuzione.
  • Quando è presente un gap nei dati della metrica.

Possono verificarsi avvisi di falsi positivi 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, esiste 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. Ecco perché una criterio di avviso che utilizza la logica minore di o basata su una condizione di percentile per una metrica di distribuzione può generare un avviso falso positivo: non tutte le voci di log sono state ancora prese in considerazione.

Tuttavia, le metriche basate su log sono a coerenza finale perché una voce di log che corrisponde a una metrica basata su 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 Logging ha già ricevuto voci di log esistenti con lo stesso timestamp. Pertanto, il valore della metrica deve essere aggiornato.

Per garantire che le notifiche rimangano accurate anche per i dati on-time, ti consigliamo di impostare il periodo di allineamento per la condizione in modo che sia sufficientemente ampio da conteggiare più voci di log corrispondenti al filtro e da tenere conto del ritardo di importazione, che può arrivare fino a 10 minuti.

Ad esempio, se una metrica basata su log conta le voci di log "heartbeat" previste ogni 7 minuti, imposta il periodo di allineamento su almeno 24 minuti. Questo valore tiene conto del ritardo di importazione e di due campioni.

  • 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 basata su log contiene troppe serie temporali

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud 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 è chiamato cardinalità della metrica. Il numero massimo di serie temporali per una metrica è 30.000.

Poiché generi una serie temporale per ogni combinazione di valori di etichetta, 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 dell'elevato numero 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 della 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 se contiene 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 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 archiviare 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 con 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 che l'aggiunta o la rimozione di etichette ha sulla cardinalità della metrica:

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

Il nome della metrica non è valido

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

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 utilizzata come primo carattere.

I valori delle metriche basate su log non sono corretti

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud 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 gli stessi valori timestamp e insertId. Esplora log elimina automaticamente le voci di log duplicate. Tuttavia, le metriche basate su log conteggiano ogni voce di log che corrisponde 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 nuovo tentativo. La procedura di nuovo tentativo potrebbe causare una voce di log duplicata. Se esistono voci di log duplicate, il valore di una metrica basata su log potrebbe essere troppo elevato perché queste metriche conteggiano ogni voce di log corrispondente al filtro della metrica.

I valori delle etichette sono troncati

Questa voce si applica solo ai dati delle metriche che Google Cloud Observability ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud 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 ricava dai dati di log (metriche basate su log). Non si applica ai dati delle metriche scritti dai servizi Google Cloud o dalle tue applicazioni.

Provi a eliminare una metrica basata su log personalizzata utilizzando la console Google Cloud . La richiesta di eliminazione non va a buon fine 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 tempistica interno.

  • Identifica ed elimina le policy di avviso che monitorano la metrica basata su log. Dopo aver verificato che la metrica basata su log non è 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.