Risolvi i problemi relativi alle metriche basate su log

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

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, devi disporre delle autorizzazioni di 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 mancano 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 sua creazione. La registrazione 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 dalla metrica di distribuzione. Verifica che i nomi dei campi e le espressioni regolari siano corretti.

  • I conteggi delle metriche potrebbero subire dei ritardi. Anche se le voci di log conteggiabili vengono visualizzate in Esplora log, potrebbero essere necessari fino a 10 minuti per aggiornare le metriche basate su log in Cloud Monitoring.

  • 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 prima o 10 minuti dopo, 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 di 14:30 il 20 febbraio 2020 e un receivedTimestamp di 14:45 il 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. Sono previsti alcuni dati mancanti, poiché i sistemi che elaborano i dati delle metriche basati su log non garantiscono la persistenza di ogni punto dati della metrica. Quando si verificano, sono in genere rari 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 falsa. Le impostazioni utilizzate nel criterio di avviso possono ridurre questa possibilità.

    Esempio: una voce di log "heartbeat" viene scritta ogni cinque minuti e una metrica basata su log conteggia il numero di voci di log "heartbeat". Un criterio 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, il criterio di avviso inserisce un valore sintetico, che è un duplicato del campione più recente ed è molto probabile che sia pari a zero, e poi valuta la condizione. Pertanto, anche un solo punto dati mancante potrebbe portare al valore zero della somma, il che fa sì che questo criterio di avviso invii una notifica.

    Per ridurre il rischio di una notifica falsa, configura il criterio in modo da conteggiare 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, la prima volta che crei un criterio di avviso o un grafico da una metrica basata su log, potresti vedere che il tipo di risorsa è "undefined".

Il tipo di risorsa non è definito.

Il tipo di risorsa monitorata viene mappato a global o a un altro tipo di risorsa monitorata in Cloud Monitoring. Consulta la sezione Mappature per le risorse solo per i log per determinare il tipo di risorsa monitorata da scegliere.

Gli incidenti non vengono creati o sono falsi positivi

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

  • Quando un criterio di avviso utilizza la logica meno di.
  • Quando un criterio di avviso si basa su una condizione percentile per una metrica di distribuzione.
  • Quando è presente una lacuna nei dati delle metriche.

Gli incidenti di tipo falso positivo possono verificarsi perché le voci di log possono essere inviate a Logging in ritardo. Ad esempio, in alcuni casi i campi di log timestamp e receiveTimestamp possono avere un delta di minuti. Inoltre, quando Logging archivia i log nei bucket di log, esiste un ritardo intrinseco tra il momento in cui le voci di log vengono generate e quello 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. Questo è il motivo per cui un criterio di avviso che utilizza la logica meno di o basato su una condizione percentile per una metrica di distribuzione può produrre un avviso falso positivo: non sono ancora state prese in considerazione tutte le voci di log.

Tuttavia, le metriche basate su log sono alla fine coerenti perché una voce di log che corrisponde a una metrica basata su log può essere inviata a Logging con un valore timestamp molto precedente o successivo rispetto al valore 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 in tempo, ti consigliamo di impostare il periodo di allineamento della condizione su almeno 10 minuti. In particolare, questo valore deve essere sufficientemente elevato per garantire il conteggio di più voci di log corrispondenti al filtro. Ad esempio, se una metrica basata su log conteggia le voci di log "heartbeat", che si prevedono ogni N minuti, imposta il periodo di allineamento su N minuti o su 10 minuti, a seconda del valore maggiore:2N

  • 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 diverse combinazioni 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à.

Con l'aumento della cardinalità di una metrica, la metrica può essere limitata e alcuni punti dati potrebbero non essere scritti nella metrica. Il caricamento dei grafici che mostrano la metrica può essere lento a causa del numero elevato di serie temporali da elaborare. Potresti anche dover sostenere costi per le chiamate API per eseguire query sui dati delle serie temporali. Per maggiori dettagli, consulta 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.

  • 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 stato con un insieme di valori noti.

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

Quando esamini queste metriche, puoi filtrare ulteriormente i risultati in base al nome della metrica. Per informazioni dettagliate, consulta Selezione delle metriche: filtri.

Il nome della metrica non è valido

Quando crei una metrica di conteggio o di distribuzione, scegli un nome unico 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 _-.,+!*',()%\/.

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

I valori delle metriche non sono corretti

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

Per ridurre al minimo la discrepanza:

  • Assicurati che le applicazioni non inviino voci di log duplicate. Le voci di log sono considerate duplicati quando hanno gli stessi timestamp e insertId. Logs Explorer elimina automaticamente le voci duplicate dei log. Tuttavia, le metriche basate su log conteggiano 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 invoca un processo di ripetizione. La procedura di ripetizione potrebbe causare una voce di log duplicata. Quando 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 per la metrica.

I valori delle etichette vengono troncati

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

Impossibile eliminare una metrica dei log personalizzata

Cerchi di 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 temporizzazione 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 un criterio di avviso, eliminala. Le metriche basate su log monitorate da un criterio di avviso non possono essere eliminate.