Questo documento descrive le visualizzazioni di analisi e quando potresti volerle creare. Descrive inoltre le differenze tra le visualizzazioni di analisi e i concetti che potresti conoscere, come le visualizzazioni dei log e le query salvate.
Per scoprire come creare, eseguire query e gestire le viste di analisi, consulta Creare ed eseguire query sulle viste di analisi.
Panoramica
Una visualizzazione di analisi è una risorsa su cui è possibile eseguire query. Questa risorsa contiene una query SQL che esegue query su una o più viste dei log.
Una visualizzazione dei log in un bucket di log controlla le voci di log nel bucket di log che puoi visualizzare. Puoi eseguire query sulla visualizzazione dei log con le pagine Esplora log e Analisi dei log. In entrambi i casi, il formato dei dati sottoposti a query è determinato dalla struttura dei dati LogEntry
.
La query SQL contenuta in una vista di analisi ti consente di trasformare i dati dei log in una o più viste dei log in un formato personalizzato. In altre parole, puoi filtrare le voci di log nella visualizzazione dei log che contribuiscono al risultato della query e definire le colonne del risultato. Ad esempio, puoi ignorare le colonne, muovere i dati da un campo JSON nidificato a una colonna o aggiungere colonne.
Le viste di Analytics non sono viste materializzate. Una vista di analisi non è una vista precalcolata che memorizza periodicamente nella cache i risultati delle query. Pertanto, eseguire una query su una vista di analisi è equivalente a eseguire query sulle viste dei log a cui la vista di analisi esegue query.
Sia una vista di analisi sia una query salvata contengono una query SQL. Tuttavia, una vista di analisi è una risorsa su cui è possibile eseguire query. Puoi eseguire di nuovo una query salvata, ma non puoi eseguire query sul risultato di una query salvata.
Tipi di visualizzazioni di Dati
Esistono due tipi di visualizzazioni di analisi: definite dall'utente e definite dal sistema:
Le viste di analisi definite dall'utente sono tutte le viste di analisi che crei. Puoi eseguire query, modificare ed eliminare le visualizzazioni di analisi definite dall'utente.
Le visualizzazioni di analisi definite dal sistema sono visualizzazioni di analisi create da Google Cloud servizi. Puoi eseguire query sulle viste di analisi definite dall'utente. Tuttavia, non puoi modificarli o eliminarli.
Per informazioni su come elencare le visualizzazioni di analisi nel progetto Google Cloud, consulta Elenca le visualizzazioni di analisi.
Posizione delle viste di analisi
La posizione di una visualizzazione di analisi è determinata dalla posizione delle risorse a cui esegue query. Ad esempio, se una vista di analisi esegue query su una vista di log
che si trova nella posizione global
, anche la posizione della vista di analisi deve essere global
. Quando utilizzi la console Google Cloud per creare una
vista di analisi, la località viene impostata automaticamente.
Vantaggi delle visualizzazioni di analisi
Il vantaggio principale di una visualizzazione di analisi è che puoi trasformare i dati dei log e creare uno schema coerente per altre query. Tuttavia, potresti anche scoprire che creando una visualizzazione di analisi puoi ridurre lo sforzo che impieghi per scrivere le query o migliorare la loro struttura. Poiché le viste di analisi non sono viste materializzate, il loro utilizzo non necessariamente consente di ridurre il tempo di query.
Esempio: trasformazione dei dati
Supponiamo che tu stia analizzando le prestazioni della rete utilizzando i log di flusso VPC. Devi analizzare le prestazioni complessive della rete e anche essere in grado di identificare reti, indirizzi IP o host specifici.
Purtroppo, le informazioni di cui hai bisogno sono contenute in campi nidificati nel campo json_payload
di una voce di log.
Per estrarre queste informazioni dalle voci di log, scrivi la seguente query e poi salvala come vista di analisi denominata network_details
:
SELECT
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM `TABLE_NAME_OF_LOG_VIEW`
WHERE
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Quando vuoi analizzare il rendimento della rete, ora puoi eseguire query sulla visualizzazione di analisi. Ad esempio, se ti interessa solo il nome dell'istanza e la quantità di dati inviati, puoi scrivere la seguente query:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
Esempio: query di base per l'analisi della latenza dell'API
Supponiamo che tu debba valutare e riepilogare la latenza delle richieste per intervalli di una settimana. Gli altri team utilizzeranno i dati settimanali dell'analisi del rendimento come base per altre analisi.
La vista di analisi che crei e che può essere sottoposta a query da altri team registra la latenza minima, massima e media delle richieste completate come registrata dalle voci di log in una vista dei log specifica:
SELECT week,MIN(took_ms) as min , MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM `TABLE_NAME_OF_LOG_VIEW`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
Ruoli e autorizzazioni IAM richiesti
Poiché le visualizzazioni di analisi eseguono query sulle visualizzazioni di log, per creare e eseguire query sulle visualizzazioni di analisi, i tuoi ruoli IAM devono consentirti anche di eseguire query sulle visualizzazioni di log e di utilizzare Log Analytics. Questa sezione elenca i ruoli IAM necessari per creare visualizzazioni di analisi e quelli necessari per eseguire query sulle visualizzazioni dei log e utilizzare Log Analytics:
-
Per ottenere le autorizzazioni necessarie per creare, gestire e utilizzare le visualizzazioni di analisi, chiedi all'amministratore di concederti il ruolo IAM Utente di analisi dell'osservabilità (
roles/observability.analyticsUser
) nel progetto.Questo ruolo predefinito contiene le autorizzazioni necessarie per creare, gestire e utilizzare le visualizzazioni di analisi. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare, gestire e utilizzare le visualizzazioni di analisi, sono necessarie le seguenti autorizzazioni:
-
observability.analyticsViews.get
-
observability.analyticsViews.list
-
observability.analyticsViews.create
-
observability.analyticsViews.update
-
observability.analyticsViews.delete
-
-
Per ottenere le autorizzazioni necessarie per eseguire query su una visualizzazione log e utilizzare Log Analytics, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Per eseguire query sui bucket di log
_Required
e_Default
: Visualizzatore log (roles/logging.viewer
) -
Per eseguire query su tutte le visualizzazioni dei log in un progetto:
Logs View Accessor (
roles/logging.viewAccessor
)
Puoi limitare un'entità a una visualizzazione di log specifica aggiungendo una condizione IAM alla concessione del ruolo Accesso alla visualizzazione dei log effettuata a livello di progetto o aggiungendo un'associazione IAM al file di criteri della visualizzazione di log. Per ulteriori informazioni, consulta Controllare l'accesso a una visualizzazione dei log.
Per informazioni sui ruoli aggiuntivi necessari per eseguire query sulle visualizzazioni dei bucket definiti dall'utente o per eseguire query sulla visualizzazione
_AllLogs
del bucket di log_Default
, consulta Ruoli di Cloud Logging. -
Per eseguire query sui bucket di log
Limitazioni
Alle visualizzazioni di analisi si applicano le seguenti limitazioni:
- Una visualizzazione di Dati non può eseguire query su un'altra visualizzazione di Dati.
- Una visualizzazione di analisi può eseguire query su più visualizzazioni di log. Tuttavia, i bucket di log
che ospitano le visualizzazioni di log sottoposte a query devono trovarsi in una posizione. Ad esempio,
supponiamo che tu abbia due bucket di log, uno in
us-east1
e l'altro inasia-east1
. Non puoi creare una visualizzazione di analisi che esegui query sulle visualizzazioni dei log su questi bucket di log. - La risorsa principale di una visualizzazione di analisi deve essere un progetto Google Cloud. Non puoi creare una visualizzazione di analisi in cartelle o organizzazioni.
- I set di dati collegati non sono supportati per le visualizzazioni di analisi. Pertanto, puoi eseguire query sulle visualizzazioni di analisi solo utilizzando la pagina Analisi dei log. Inoltre, devi eseguire queste query sul servizio Cloud Logging predefinito.
- Non è previsto il supporto dell'API per la creazione o la gestione delle visualizzazioni di analisi.
Ai report di analisi si applicano i seguenti limiti:
- Numero massimo di visualizzazioni di analisi per progetto Google Cloud: 100
- Per progetto Google Cloud, il numero massimo di viste di analisi per regione: 50
- Per progetto Google Cloud, il numero massimo di regioni che possono memorizzare le visualizzazioni di analisi: 10
Passaggi successivi
- Creare visualizzazioni di analisi e eseguire query
- Panoramica di query e analisi dei log
- Salvare e condividere una query SQL