Questa pagina fornisce una panoramica concettuale delle metriche basate su log.
Le metriche basate su log possono aiutarti a osservare tendenze e schemi ricorrenti in un volume elevato di voci di log. Ad esempio, puoi utilizzare una metrica basata su log per contare il numero di voci di log che contengono un determinato messaggio o per estrarre le informazioni sulla latenza registrate nelle voci di log. Puoi visualizzare le metriche basate su log nei grafici di Cloud Monitoring e i criteri di avviso possono monitorarle.
Le metriche basate su log possono essere raggruppate in due categorie:
In base ai progetti. Queste metriche basate su log valutano le voci di log che passano per i canali di log di un progetto e vengono archiviate in un bucket di log nel progettoGoogle Cloud . Le voci di log valutate includono quelle indirizzate al tuo Google Cloud progetto da un'area di destinazione dei log in un altro progetto.
Potresti non essere in grado di utilizzare le metriche basate su log per valutare tutte le voci di log generate nel tuo progetto. Ad esempio, se un amministratore ha creato un sink aggregato di intercettazione, le voci di log instradate da questo sink non possono raggiungere i sink a livello di progetto. Pertanto, queste voci di log non possono contribuire a una metrica basata su log.
In base al bucket di log. Queste metriche basate su log valutano le voci di log memorizzate in un determinato bucket di 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 counter in memoria.
Esiste uno stream per ogni combinazione di valori univoci per l'insieme di etichette delle metriche e delle risorse. Ogni contatore in memoria si riferisce a un intervallo di tempo diverso, ma ogni contatore registra il numero di voci di log corrispondenti al filtro e con 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 sono presenti cinque stream, esistono cinque serie temporali gestite da monitoraggio. Puoi rappresentare queste serie temporali in un grafico. Puoi anche creare criteri 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, -)
indica che non è stato scritto alcun valore per l'ora T1
. Ciò corrisponde a un'interruzione nei valori della serie temporale.
Al contrario, (T3, 0)
indica che il valore della serie temporale
al momento T3
è zero.
Per ogni stream, il sistema di backend per le metriche basate su log utilizza le seguenti regole per determinare il valore da scrivere nelle serie temporali archiviate dal monitoraggio:
Quando il conteggio aggregato per un intervallo è diverso da zero, questo 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 timstamp corrispondente all'intervalloT4
ha soddisfatto il 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 è zero. Nella serie temporale viene scritto un valore di zero perché il valore per l'intervallo precedente era diverso da zero.In caso contrario, la serie temporale non viene aggiornata e esiste una lacuna nei dati per l'intervallo.
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 ritardo e future
Quando le voci di log arrivano con un timestamp per un intervallo che è stato elaborato, il backend di Log genera dati storici. I dati storici vengono utilizzati per aggiornare i conteggi precedentemente scritti.
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 relativo 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 la tua metrica basata su 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 Google Cloud progetto o di un bucket di log. Non puoi creare metriche basate su log per altre Google Cloud risorse, come account o organizzazioni di fatturazione Cloud.
Per informazioni sulle differenze tra le metriche basate su log con ambito di progetto e quelle con ambito di bucket, consulta Metriche basate su log con ambito di bucket.
Metriche definite dal sistema
La registrazione fornisce un insieme di metriche per i valori di utilizzo, ad esempio il numero di voci di log archiviate nei bucket di log del progetto o il numero di byte esportati. Per un elenco completo delle metriche definite dal sistema, consulta Google Cloud metrics: logging.
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 su log con ambito del bucket vengono calcolate da tutti i log destinati al bucket, indipendentemente dalla loro origine. Per ulteriori informazioni, consulta Metriche basate su log per i bucket di log.
Tipi di dati per le metriche basate su log
Le metriche basate su log possono estrarre i 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: queste metriche conteggiano anche i valori, ma raccolgono i conteggi in intervalli di valori (bucket dell'istogramma). Utilizza le distribuzioni quando vuoi estrarre valori come le latenze.
- Booleano: queste metriche rilevano 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 su 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 in modo retroattivo con i dati delle voci di log già presenti in Logging.
Le metriche basate sui log di sistema vengono calcolate solo dai log inclusi. Le metriche basate su log definite dall'utente vengono calcolate sia dai log inclusi che da quelli esclusi.
Le sezioni seguenti descrivono le caratteristiche delle metriche di tipo contatore e di tipo distribuzione.
Metriche dei contatori
Le metriche contatore conteggiano 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 ...
Estraendo USERNAME e OPERATION e utilizzandoli 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 dei contatori.
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, ciascuno dei quali contiene quanto segue:
- Un conteggio del numero di valori nella distribuzione.
- La media dei valori.
- La somma delle deviazioni al quadrato: Sommai=1..n(xi-media)2
- Un insieme di bucket dell'istogramma con il conteggio dei valori in ogni bucket. Puoi scegliere il layout predefinito del bucket o crearne uno personalizzato.
Un utilizzo comune delle metriche di distribuzione è il monitoraggio delle latenze. Quando viene ricevuta ogni voce del log, un valore di latenza viene estratto da qualche parte nella voce del log e 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 come vengono visualizzate, consulta Grafici delle metriche di distribuzione.
Per informazioni sulla creazione di metriche di distribuzione basate su log, consulta Configurare le metriche di distribuzione.
Tipi di risorse
Ti consigliamo di specificare un singolo tipo di risorsa per le metriche basate su log. Questa specifica garantisce che la serie temporale generata per la metrica basata su log corrisponda al modello di dati previsto da Cloud Monitoring. Inoltre, semplifica il processo di creazione di grafici e criteri di avviso, poiché non vi è alcuna ambiguità su quali dati delle serie temporali vengono tracciati o monitorati.
Prendiamo in considerazione 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 è elencata come opzione nei menu. Quando crei un grafico per un tipo di risorsa diverso, la metrica basata su log non è elencata come opzione.
Se crei una metrica basata su log senza specificare un tipo di risorsa, monitoraggio 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 per le etichette vengono estratti dai campi nelle voci di log corrispondenti. I record di log 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 le etichette che definisci. In genere, queste etichette estraggono i 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 a livello di 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 le metriche basate su log sia di sistema che 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 visualizzare solo determinate serie temporali. Per ulteriori informazioni, consulta Elenca e crea grafici delle metriche basate su log e Generare avvisi sulle 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à agli ambiti delle metriche di monitoraggio
Le metriche basate su log vengono importate da Cloud Monitoring e la visibilità Google Cloud dei dati delle metriche per un progetto è 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, pertanto un progetto è un progetto di definizione dell'ambito per se stesso. Pertanto, le metriche, incluse quelle basate su log, sono visibili solo al tuo Google Cloud progetto.
Puoi anche creare un ambito delle metriche multi-project per il progetto di definizione dell'ambito. Con un ambito delle metriche multi-progetto, il progetto di definizione dell'ambito può visualizzare le metriche di tutti i progetti nell'ambito delle metriche. Gli elementi visibili ai singoli progetti in un ambito delle metriche multi-progetto sono determinati dall'ambito delle metriche ospitato da ciascuno di questi progetti. Il fatto che due progetti si trovino nello stesso ambito delle metriche multi-progetto non significa che ogni progetto abbia accesso ai dati delle metriche o di configurazione dell'altro progetto.
Un singolo progetto può anche essere visualizzato 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 a progetti diversi da quello in cui sono definite. Per informazioni sull'interazione tra gli ambiti delle metriche e le metriche basate su log con ambito del bucket, consulta Progetti e ambiti delle metriche.
Per ulteriori informazioni sugli ambiti delle metriche, inclusi gli ambiti delle metriche per più progetti, e sui progetti di definizione dell'ambito, consulta quanto segue:
Prezzi
Tutte le metriche basate su log definite dall'utente sono una classe di metriche personalizzate di Cloud Monitoring e sono addebitabili. Per informazioni sui prezzi, consulta Prezzi di Cloud Logging: metriche basate su log.
Quota
Per informazioni sulle quote e sui limiti associati alle metriche basate su log definite dall'utente, consulta Quote e limiti.
Risoluzione dei problemi
Se riscontri problemi durante l'utilizzo delle metriche basate su log, consulta la sezione Risolvere i problemi relativi alle metriche basate su log.