Introduzione al monitoraggio di BigQuery
Il monitoraggio e il logging sono fondamentali per l'esecuzione di applicazioni affidabili nel cloud. I carichi di lavoro BigQuery non fanno eccezione, soprattutto se il tuo ha volumi elevati o è mission critical. Questo documento fornisce una panoramica Panoramica dei dati di monitoraggio disponibili per BigQuery.
Le sorgenti di monitoraggio e logging possono variare in base alla frequenza di campionamento o e aggregazione. Ad esempio, i dati dello schema di informazioni potrebbero essere disponibili di granularità superiore rispetto ai dati delle metriche di Cloud Monitoring.
Di conseguenza, i grafici delle metriche con granularità più bassa potrebbero sembrare divergenti da statistiche comparabili degli schemi di informazioni. L'aggregazione tenderà a uniformare a eliminare le discrepanze. Quando progetti una soluzione di monitoraggio, valuta il tempo di risposta alle richieste, la precisione e l'accuratezza delle metriche rispetto i tuoi requisiti.
Metriche
Le metriche sono valori numerici raccolti a intervalli regolari disponibili per l'analisi. Puoi utilizzare le metriche per:
- Creare grafici e dashboard.
- Attiva avvisi per condizioni o situazioni che richiedono l'intervento umano dell'intervento.
- Analizzare il rendimento storico.
Nel caso di BigQuery, le metriche disponibili includono il numero
di job in esecuzione, quanti byte sono stati analizzati durante una query
dei tempi di query. Le metriche solo per una query
diventano disponibili dopo l'esito positivo della query e la loro
segnalato. Le metriche per le query non riuscite non vengono segnalate. Per un elenco completo
le metriche disponibili, tra cui frequenze di campionamento, visibilità e limiti, consulta
bigquery
in meno
Metriche di Google Cloud:
Utilizzare Cloud Monitoring per visualizzare BigQuery
metriche e creare grafici e avvisi. Ogni metrica ha un tipo di risorsa,
bigquery_dataset
, bigquery_project
o global
e un insieme di etichette. Utilizza le funzionalità di
queste informazioni per creare query
Monitoring Query Language (MQL).
Puoi raggruppare o filtrare ogni metrica utilizzando le etichette.
Ad esempio, per rappresentare su grafico il numero di query interattive in volo, utilizza la
seguente istruzione MQL, che filtra per priority
uguale a interactive
:
fetch global
| metric 'bigquery.googleapis.com/query/count'
| filter metric.priority = 'interactive'
L'esempio successivo ottiene il numero di job di caricamento in fase di pubblicazione, raggruppati in istanze di 10 minuti intervalli:
fetch bigquery_project
| metric 'bigquery.googleapis.com/job/num_in_flight'
| filter metric.job_type = 'load'
| group_by 10m
Per ulteriori informazioni, vedi Creazione di grafici e avvisi per BigQuery.
Log
I log sono record di testo generati in risposta a particolari eventi o azioni. BigQuery crea voci di log per azioni come la creazione o l'eliminazione di una tabella, l'acquisto di slot o l'esecuzione di un job di caricamento. Per ulteriori informazioni informazioni sul logging in Google Cloud, consulta Cloud Logging.
Un log è una raccolta di voci di log di sola aggiunta. Ad esempio, potresti scrivere
le tue voci di log in un log denominato
projects/PROJECT_ID/logs/my-test-log
. Molti
I servizi Google Cloud, tra cui BigQuery, creano un tipo
chiamato audit log. Questi log registrano:
- Attività amministrative, come la creazione o la modifica di risorse.
- Accesso ai dati, ad esempio la lettura di dati forniti dall'utente da una risorsa.
- Eventi di sistema generati dai sistemi Google, anziché dall'utente azioni.
Gli audit log sono scritti in formato JSON strutturato. Il tipo di dati di base per
Le voci di log di Google Cloud sono
Struttura di LogEntry
. Questo
contiene il nome del log, la risorsa che ha generato il log
la voce, il timestamp (UTC) e altre informazioni di base.
I dettagli dell'evento registrato sono contenuti in un campo secondario chiamato payload
. Per gli audit log, il campo del payload è denominato protoPayload
. Il valore di
questo campo è
AuditLog
strutturale, indicata dal valore del campo protoPayload.@type
, che
impostato su type.googleapis.com/google.cloud.audit.AuditLog
.
Attualmente BigQuery per le operazioni su set di dati, tabelle e job
scrive gli audit log in due formati diversi, sebbene entrambi condividano il valore AuditLog
tipo di base.
Nel formato precedente:
- Il campo
resource.type
èbigquery_resource
. - I dettagli dell'operazione vengono scritti in
protoPayload.serviceData
. Il valore di questo campo è unAuditData
alla struttura del centro di costo.
Nel formato più recente:
- Il campo
resource.type
èbigquery_project
obigquery_dataset
. La risorsabigquery_project
contiene voci di log relative ai job, mentre La risorsabigquery_dataset
ha voci di log relative allo spazio di archiviazione. - I dettagli dell'operazione vengono scritti nel campo
protoPayload.metadata
. Il valore di questo campo è unBigQueryAuditMetadata
alla struttura del centro di costo.
Ti consigliamo di utilizzare i log nel formato più recente. Per ulteriori informazioni, vedi Guida alla migrazione degli audit log.
Ecco un esempio abbreviato di una voce di log che mostra un'operazione non riuscita:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset my-project:my-dataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
Per le operazioni sulle prenotazioni BigQuery, protoPayload
è un
AuditLog
della struttura e i campi protoPayload.request
e protoPayload.response
contengono ulteriori informazioni. Le definizioni dei campi sono disponibili in
API BigQuery Reservation. Per ulteriori informazioni
le informazioni, vedi
Monitoraggio delle prenotazioni BigQuery.
INFORMATION_SCHEMA
visualizzazioni
INFORMATION_SCHEMA
visualizzazioni sono
un'altra fonte di insight in BigQuery, che puoi utilizzare
in combinazione con metriche e log.
Queste viste contengono metadati su job, set di dati, tabelle e altro Entità BigQuery. Ad esempio, puoi ottenere metadati in tempo reale su quali job BigQuery sono stati eseguiti in un determinato periodo di tempo quindi raggruppa o filtra i risultati per progetto, utente, tabelle di riferimento e dimensioni.
Puoi utilizzare queste informazioni per eseguire analisi più dettagliate sul tuo carichi di lavoro BigQuery e rispondi a domande come:
- Qual è l'utilizzo medio degli slot per tutte le query negli ultimi 7 giorni? di un determinato progetto?
- Quali utenti hanno inviato un job di caricamento batch per un determinato progetto?
- Quali errori di flussi di dati si sono verificati negli ultimi 30 minuti, raggruppati per codice di errore?
In particolare, esamina i metadati delle offerte di lavoro, metadati dei flussi di dati e i metadati delle prenotazioni per ottenere insight sulle prestazioni dei carichi di lavoro BigQuery.
Puoi trovare esempi di query INFORMATION_SCHEMA
su
GitHub
che mostrano l'utilizzo di slot e prenotazioni, l'esecuzione di job
e gli errori dei job. Ad esempio, la seguente query fornisce un elenco
query in attesa o attualmente in esecuzione. Queste query vengono ordinate
per il periodo di tempo trascorso dalla loro creazione nella regione us
:
SELECT creation_time, project_id, user_email, job_id, job_type, priority, state, TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), start_time,second) as running_time_sec FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND state != "DONE" ORDER BY running_time_sec DESC
Per ulteriori informazioni, consulta Risolvere i problemi di prestazioni di BigQuery con queste dashboard.
Se hai prenotazioni di slot, oltre a scrivere la tua query, puoi usare i grafici delle risorse di amministrazione di BigQuery per vedere i grafici utilizzo degli slot display, contemporaneità dei job e tempo di esecuzione del job. Per ulteriori informazioni, vedi Introduzione ai grafici delle risorse di amministrazione di BigQuery (anteprima).
Passaggi successivi
- Scopri come monitorare l'utilizzo delle risorse e i job.
- Scopri come creare grafici e avvisi per BigQuery.
- Scopri come monitorare l'utilizzo dei job di caricamento.