Questa pagina fornisce una panoramica concettuale delle metriche basate su log. Queste metriche possono aiutarti a osservare tendenze e pattern in un volume elevato di voci di log.
Informazioni sulle metriche basate su log
Le metriche basate su log sono metriche di Cloud Monitoring derivate dal contenuto delle voci di log. Ad esempio, puoi utilizzare una metrica basata sui log per conteggiare il numero di voci di log che contengono un messaggio specifico o per estrarre le informazioni sulla latenza registrate nelle voci di log. Puoi visualizzare le metriche basate sui log nei grafici di Cloud Monitoring e le norme di avviso possono monitorare queste metriche.
Le metriche basate su log possono essere applicate a livello di progetto o di bucket di log. Le metriche basate su log con ambito di bucket sono utili quando utilizzi sink aggregati per instradare le voci di log a un bucket di log e quando instradi le voci di log da un progetto a un bucket di log in un altro progetto. Per ulteriori informazioni, consulta la sezione di questa pagina intitolata Origini delle metriche basate su log.
Come vengono determinati i valori delle serie temporali per le metriche basate su log
Questa sezione descrive brevemente come vengono determinati i valori in una serie temporale per una metrica basata su log di tipo contatore. Descrive anche il motivo per cui una serie temporale per una metrica basata su log potrebbe presentare lacune. La procedura è simile per le metriche basate su log con valori di distribuzione.
Per le metriche basate su log di tipo contatore, Logging esegue le seguenti operazioni:
Crea uno o più stream di dati e, per ogni stream, gestisce un insieme di contatori in memoria.
Esiste uno stream per ogni combinazione di valori univoci per l'insieme di etichette di metriche e risorse. Ogni contatore in memoria si riferisce a un intervallo di tempo diverso, ma ogni contatore registra il numero di voci di log che corrispondono al filtro e che hanno un timestamp corrispondente all'intervallo.
Ogni minuto, per ogni stream, il backend di Logging utilizza i valori dei contatori in memoria per determinare come aggiornare una serie temporale gestita da Cloud Monitoring.
Se ci sono cinque stream, ci sono cinque serie temporali gestite da Monitoring. Puoi rappresentare graficamente queste serie temporali. Puoi anche creare policy di avviso per monitorare queste serie temporali.
Esempio: in che modo i valori zero possono causare lacune nei dati
Considera la seguente serie temporale:
Example time series: (T1, -), (T2, -), (T3, 0), (T4, 1), (T5, 0), (T6, -)
Nell'espressione precedente, (T1, -)
significa che non è stato scritto alcun valore
per l'ora T1
. Ciò corrisponde a una lacuna nei valori della serie temporale.
Al contrario, (T3, 0)
significa che il valore della serie temporale
al momento T3
è zero.
Per ogni flusso, il sistema backend per le metriche basate sui log utilizza le seguenti regole per determinare quale valore scrivere nella serie temporale archiviata da Monitoring:
Quando il conteggio aggregato per un intervallo è diverso da zero, il valore viene scritto nella serie temporale.
Nella serie temporale di esempio, solo l'intervallo
T4
ha un valore diverso da zero. Il valore1
indica che una voce di log con un timestamp corrispondente all'intervalloT4
corrispondeva al filtro della metrica basata su log.Quando il conteggio aggregato per un intervallo è zero, viene scritto un valore pari a zero nella serie temporale quando un intervallo adiacente ha un valore diverso da zero.
Nella serie temporale di esempio, al momento
T3
, il conteggio aggregato è zero. Tuttavia, viene scritto un valore pari a zero perché al momentoT4
il conteggio aggregato è diverso da zero. Analogamente, al momentoT5
, il conteggio aggregato è pari a zero. Nella serie temporale viene scritto un valore pari a zero perché il valore dell'intervallo precedente era diverso da zero.In caso contrario, la serie temporale non viene aggiornata e si verifica un intervallo di tempo senza dati.
Nella serie temporale di esempio, non è presente alcun valore per gli intervalli
T1
,T2
eT6
. In questi intervalli, i conteggi aggregati erano pari a zero e anche i conteggi per gli intervalli adiacenti erano pari a zero.
Gestione delle voci di log in arrivo in ritardo e future
Quando arrivano voci di log con un timestamp per un intervallo che è stato elaborato, il backend di Logging genera dati storici. I dati storici vengono utilizzati per aggiornare i conteggi scritti in precedenza.
Quando le voci di log arrivano con un timestamp futuro, il backend di Logging accumula questi conteggi. Nella serie temporale, queste voci di log vengono conteggiate quando il timestamp corrisponde all'intervallo corrente.
Origini delle metriche basate su log
Puoi utilizzare le metriche definite da Cloud Logging per raccogliere informazioni sull'utilizzo generale e puoi definire una metrica basata sui log per acquisire informazioni specifiche per la tua applicazione o la tua attività.
Le metriche basate su log possono essere applicate all'interno di un singolo progetto o all'interno di un bucket di log. Google Cloud Non puoi creare metriche basate sui log per altre risorse Google Cloud , come organizzazioni o account di fatturazione Cloud.
Per informazioni sulle differenze tra le metriche basate su log basate su progetto e le metriche basate su log basate su bucket, consulta Metriche basate su log con ambito di bucket.
Metriche definite dal sistema
Logging fornisce un insieme di metriche per i valori di utilizzo, ad esempio il numero di voci di log archiviate nei bucket di log del tuo progetto o il numero di byte esportati. Per un elenco completo delle metriche definite dal sistema, consulta Metriche diGoogle Cloud : logging.
Le metriche basate su log definite dal sistema si applicano a livello di progetto.
Log Router conteggia una voce di log quando tutte le seguenti condizioni sono vere:
- La voce di log passa attraverso i sink di log del progetto in cui è definita la metrica basata su log.
La voce di log è archiviata in un bucket di log. Il bucket di log può trovarsi in qualsiasi progetto.
Ad esempio, supponiamo che il progetto
A
abbia un sink di log la cui destinazione è il progettoB
. Supponi inoltre che i sink di log nel progettoB
indirizzino le voci di log a un bucket di log. In questo scenario, le voci di log instradate dal progettoA
al progettoB
contribuiscono alle metriche basate su log definite dal sistema del progettoA
. Queste voci di log contribuiscono anche alle metriche basate su log definite dal sistema del progettoB
.
Metriche definite dall'utente
Puoi creare metriche basate su log definite dall'utente per monitorare altre metriche importanti per il tuo progetto. Ad esempio, puoi creare una metrica basata su log per conteggiare il numero di voci di log corrispondenti a un determinato filtro.
Per impostazione predefinita, le metriche basate su log definite dall'utente vengono calcolate da tutti i log ricevuti dall'API Logging per il progetto Google Cloud , indipendentemente da eventuali filtri di inclusione o filtri di esclusione che potrebbero essere applicati al progettoGoogle Cloud .
Puoi anche creare metriche basate su log definite dall'utente per un bucket di log specifico in un progetto Google Cloud . Le metriche basate sui log con ambito bucket vengono calcolate da tutti i log destinati al bucket, indipendentemente dalla loro origine. Per ulteriori informazioni, consulta Metriche basate su log nei bucket di log.
Log Router conteggia una voce di log quando tutte le seguenti condizioni sono vere:
- La fatturazione è abilitata nel progetto in cui è definita la metrica basata su log.
- Per le metriche con ambito di bucket, la voce di log viene archiviata nel bucket di log in cui è definita la metrica basata su log.
- Per le metriche con ambito di progetto, la voce di log passa attraverso i sink di log del progetto in cui è definita la metrica basata su log.
Tipi di dati per le metriche basate su log
Le metriche basate su log possono estrarre dati dai log per creare metriche dei seguenti tipi:
- Contatore: queste metriche contano il numero di voci di log corrispondenti a un filtro specificato in un periodo specifico. Utilizza i contatori quando vuoi tenere traccia del numero di volte in cui un valore o una stringa viene visualizzato nei log.
- Distribuzione: anche queste metriche conteggiano i valori, ma li raccolgono in intervalli di valori (bucket dell'istogramma). Utilizza le distribuzioni quando vuoi estrarre valori come le latenze.
- Booleano: queste metriche indicano se una voce di log corrisponde o meno a un filtro specificato.
Le metriche basate su log definite dall'utente possono essere di tipo contatore o distribuzione. La maggior parte delle metriche basate sui log definite dal sistema sono contatori, ma alcune sono di tipo booleano. Le caratteristiche dei contatori e delle distribuzioni sono descritte in modo più dettagliato nelle sezioni successive.
I dati di una metrica basata su log definita dall'utente provengono solo dalle voci di log ricevute dopo la creazione della metrica. Una metrica non viene compilata retroattivamente con i dati delle voci di log già presenti in Logging.
Le metriche basate sui log di sistema vengono calcolate solo a partire dai log inclusi. Le metriche basate su log definite dall'utente vengono calcolate a partire dai log inclusi ed esclusi.
Le sezioni seguenti descrivono le caratteristiche delle metriche di tipo contatore e di tipo distribuzione.
Metriche contatore
Le metriche contatore contano il numero di voci di log corrispondenti a un determinato filtro. Ad esempio, puoi eseguire le seguenti operazioni:
- Conta le voci di log che contengono un determinato messaggio di errore specifico.
Conta il numero di volte in cui ogni utente richiama un'operazione cercando i messaggi di log che corrispondono a questo pattern:
... user USERNAME called OPERATION ...
Se estrai USERNAME e OPERATION e li utilizzi come valori per due etichette, in un secondo momento puoi chiedere: "Quante volte
sally
ha chiamato l'operazioneupdate
?". "Quante persone hanno chiamato l'operazioneread
?" "Quante voltegeorge
ha chiamato un'operazione?" e così via.
Per saperne di più, consulta Configurare le metriche del contatore.
Metriche di distribuzione
Le metriche di distribuzione accumulano dati numerici dalle voci di log corrispondenti a un filtro. Le metriche contengono una serie temporale di oggetti di distribuzione, ognuno dei quali contiene quanto segue:
- Un conteggio del numero di valori nella distribuzione.
- La media dei valori.
- La somma degli scarti al quadrato: Sumi=1..n(xi–media)2
- Un insieme di bucket dell'istogramma con il conteggio dei valori in ogni bucket. Puoi utilizzare il layout predefinito del bucket o sceglierne uno personalizzato.
Un utilizzo comune delle metriche di distribuzione è il monitoraggio delle latenze. Man mano che ogni voce di log viene ricevuta, viene estratto un valore di latenza da un punto qualsiasi della voce di log e viene aggiunto alla distribuzione. A intervalli regolari, la distribuzione accumulata viene scritta in Cloud Monitoring.
Per informazioni sulle distribuzioni, incluso il loro formato all'interno di una serie temporale e la loro visualizzazione, consulta Grafici delle metriche di distribuzione.
Per informazioni sulla creazione di metriche basate su log di distribuzione, consulta Configurare le metriche di distribuzione.
Tipi di risorse
Ti consigliamo di specificare un singolo tipo di risorsa per le metriche basate sui log. Questa specifica garantisce che la serie temporale generata per la metrica basata sui log corrisponda al modello dei dati previsto da Cloud Monitoring. Semplifica inoltre il processo di creazione di grafici e policy di avviso, in quanto non vi è alcuna ambiguità in merito ai dati delle serie temporali rappresentati o monitorati.
Considera una metrica basata su log con il seguente filtro:
severity>="ERROR"
resource.type="gce_instance"
Cloud Monitoring riconosce che questi dati si riferiscono a un'istanza VM di Compute Engine. Pertanto, quando crei un grafico per un'istanza VM, la metrica basata su log viene visualizzata come opzione nei menu. Quando crei un grafico per un tipo di risorsa diverso, la metrica basata sui log non viene elencata come opzione.
Se crei una metrica basata su log senza specificare un tipo di risorsa, Monitoring elenca la metrica basata su log come opzione per più tipi di risorse, anche se non conteggi le voci di queste risorse.
Etichette
Le metriche basate su log possono avere etichette, che consentono di raccogliere più serie temporali per la metrica. I valori delle etichette vengono estratti dai campi nelle voci di log corrispondenti. I record di logging separano le serie temporali per ogni combinazione di valori delle etichette.
La maggior parte delle metriche basate su log fornisce un'etichetta log
predefinita.
Questa etichetta contiene il valore della parte LOG_ID del
campo logName
nella voce di log, ad esempio,
cloudresourcemanager.googleapis.com%2Factivity
.
Le metriche basate sui log di sistema hanno etichette predefinite che non possono essere modificate.
Le metriche basate su log definite dall'utente possono includere etichette definite da te. In genere, queste etichette estraggono valori dalle voci di log che contribuiscono alla metrica basata su log.
Ad esempio, puoi utilizzare le etichette nella metrica basata su log per registrare la cartella o l'organizzazione da cui ha avuto origine una voce di log, anche se non è possibile creare metriche basate su log con ambito bucket per cartelle o organizzazioni. Per ulteriori informazioni, consulta Etichette delle metriche basate su log.
Grafici e criteri di avviso in Cloud Monitoring
Puoi utilizzare sia le metriche basate su log definite dal sistema sia quelle definite dall'utente in Cloud Monitoring per creare grafici e criteri di avviso. Per questi grafici e criteri di avviso, puoi utilizzare le etichette per filtrare o combinare le serie temporali. Ad esempio, puoi impostare un filtro per mostrare solo determinate serie temporali. Per ulteriori informazioni, consulta Elencare e rappresentare graficamente le metriche basate su log e Generare avvisi relativi alle metriche basate su log.
In Cloud Monitoring, le metriche basate su log utilizzano i seguenti pattern di denominazione:
- Sistema:
logging.googleapis.com/SYSTEM_METRIC_NAME
- Definito dall'utente:
logging.googleapis.com/user/USER_METRIC_NAME
Tieni presente che le metriche basate su log definite dall'utente includono la stringa user
.
Visibilità degli ambiti delle metriche di Monitoring
Le metriche basate su log vengono importate da Cloud Monitoring e la visibilità dei dati delle metriche per un progetto Google Cloud è determinata da un ambito delle metriche. Un ambito delle metriche è un elenco di progetti monitorati dal progetto che ospita l'ambito delle metriche; il progetto host è chiamato progetto di definizione.
Per impostazione predefinita, ogni progetto ospita un ambito delle metriche che include solo se stesso, quindi un progetto è un progetto di definizione dell'ambito per se stesso. Pertanto, le tue metriche, incluse quelle basate su log, sono visibili solo al tuo progettoGoogle Cloud .
Puoi anche creare un ambito delle metriche per più progetti per il progetto di definizione dell'ambito. Con un ambito delle metriche per più progetti, il progetto di definizione dell'ambito può visualizzare le metriche di tutti i progetti nell'ambito delle metriche. Ciò che è visibile ai singoli progetti in un ambito delle metriche multiprogetto è determinato dall'ambito delle metriche ospitato da ciascuno di questi progetti. Il fatto che due progetti si trovino in un ambito delle metriche multiprogetto non significa che ogni progetto abbia accesso ai dati di metrica o di configurazione dell'altro progetto.
Un singolo progetto può essere visualizzato anche in più ambiti delle metriche. Le metriche di un progetto di questo tipo sono visibili ai progetti di definizione dell'ambito di ciascuno di questi ambiti delle metriche.
Le metriche, incluse quelle basate su log, sono definite all'interno di un progetto specifico. Quando il progetto viene visualizzato in più ambiti delle metriche, le metriche sono visibili ai progetti diversi da quello in cui sono definite. Per informazioni su come interagiscono gli ambiti delle metriche e le metriche basate su log con ambito bucket, consulta Progetti e ambiti delle metriche.
Per saperne di più sugli ambiti delle metriche, inclusi quelli multi-progetto, e sui progetti di definizione dell'ambito, consulta quanto segue:
Limitazioni
Non puoi creare metriche basate su log che conteggiano il numero di voci di log che contengono un gruppo di errori. Inoltre, non puoi estrarre l'ID di un gruppo di errori in un'etichetta collegata a una metrica basata su log.
Prezzi
Tutte le metriche basate su log definite dall'utente sono una classe di metriche personalizzate di Cloud Monitoring e sono addebitabili. Per le informazioni sui prezzi, consulta Prezzi di Cloud Logging: metriche basate su log.
Quota
Per informazioni sulle quote e sui limiti associati alle metriche basate sui log definite dall'utente, consulta Quote e limiti.
Risoluzione dei problemi
Se riscontri problemi durante l'utilizzo delle metriche basate su log, consulta Risolvere i problemi relativi alle metriche basate su log.