Le visualizzazioni Analytics in Observability Analytics consentono di definire una query SQL con uno schema personalizzato
sui dati di osservabilità in modo da semplificare e riutilizzare trasformazioni complesse. Mentre puoi eseguire nuovamente solo una query salvata, puoi fare riferimento a una vista di analisi come origine dati nella clausola FROM di altre query SQL.
Panoramica
Una vista di analisi è una risorsa su cui puoi eseguire query. ovvero, dopo aver definito una vista di analisi, puoi scrivere query in cui specifichi la vista di analisi nella clausola FROM.
Il vantaggio principale dell'utilizzo delle viste di analisi è che non sei vincolato a interrogare i dati nel formato definito da un'API o da un sistema. Una vista di analisi ti consente di definire uno schema, semplificando le query o riducendo il tempo necessario per scriverle. La query in una visualizzazione Analytics può eseguire operazioni come conservare solo campi specifici, rinominare i campi, spostare i campi nidificati in una colonna di primo livello ed eseguire raggruppamenti e aggregazioni.
Le viste Analytics non sono viste materializzate. Una vista di analisi non è una vista precalcolata che memorizza periodicamente nella cache i risultati delle query. Pertanto, l'esecuzione di una query su una vista di analisi equivale all'esecuzione di una query sulle viste elencate nella query della vista di analisi.
Le viste Analytics sono più potenti delle query salvate, ovvero query che esegui nella pagina Observability Analytics e poi salvi. Puoi eseguire di nuovo una query salvata, ma non puoi eseguire query sui risultati di una query salvata.
Tipi di viste Analytics
Esistono due tipi di viste di Analytics: definite dall'utente e definite dal sistema:
Le viste Analytics definite dall'utente sono tutte le viste Analytics che crei. Puoi eseguire query, modificare ed eliminare le visualizzazioni di Analytics definite dall'utente.
Le viste Analytics definite dal sistema sono viste Analytics create dai serviziGoogle Cloud . Puoi eseguire query sulle viste di analisi definite dal sistema. Tuttavia, non puoi modificarli o eliminarli.
Per informazioni sull'elenco delle viste Analytics nel tuo progettoGoogle Cloud , vedi Elenca le viste Analytics.
Posizione delle viste Analytics
La posizione di una vista di analisi è determinata dalla posizione delle risorse su cui esegue query. Ad esempio, se una vista di analisi esegue query su una visualizzazione log o una visualizzazione di osservabilità che si trova nella località global, anche la località della vista di analisi deve essere global. Quando utilizzi la console Google Cloud per creare una vista di analisi, la località viene impostata automaticamente.
Esempi di casi d'uso
I seguenti esempi illustrano come utilizzare le visualizzazioni Analytics per semplificare e riutilizzare le query.
Query per i dettagli di rete
Vuoi analizzare le prestazioni di rete utilizzando i log di flusso VPC. Devi
analizzare le prestazioni complessive della rete e identificare
reti, indirizzi IP e host specifici. Queste informazioni sono memorizzate all'interno di
campi nidificati nel campo json_payload di una voce di log.
Per semplificare le query di analisi, crea la seguente vista di analisi
e chiamala network_details:
SELECT
-- Create a column for each network field.
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
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Only query the VPC Flow Logs log.
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Prima di utilizzare la query, imposta i valori delle seguenti variabili:
- PROJECT_ID: l'identificatore del progetto.
- LOCATION: la posizione della visualizzazione dei log.
- BUCKET_ID: il nome o l'ID del bucket di log.
- LOG_VIEW_ID: l'identificatore della visualizzazione dei log, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.
Quando vuoi analizzare il rendimento della rete, esegui una query sulla tua vista 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
Query di base per l'analisi della latenza dell'API
Diversi team hanno bisogno di dati sul rendimento settimanale per completare l'analisi. Invece di generare i dati settimanali per ogni team, crea una vista di analisi che estrae i dati settimanali. Altri team possono eseguire query sulla vista di analisi e poi eseguire la propria analisi.
La seguente query mostra come utilizzare SQL per calcolare la latenza minima, massima e media delle richieste:
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
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
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
Estrai il nome del servizio di tracciamento
Supponiamo che tu voglia scrivere query che analizzino i dati di traccia e che tu
voglia visualizzare o raggruppare in base a un nome di servizio sintetizzato. La query per la vista di analisi determina il nome del servizio per uno span utilizzando la funzione COALESCE, che valuta un elenco di espressioni in ordine e restituisce il valore della prima espressione che non restituisce NULL:
SELECT
start_time,
-- Set the value of service name based on the first non-null value in the list.
COALESCE(
JSON_VALUE(resource.attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
name AS span_name,
duration_nano,
status.code AS status,
trace_id,
span_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10
Prima di utilizzare la query, sostituisci PROJECT_ID con l'ID del tuo progettoGoogle Cloud .
Unire i dati di traccia e log utilizzando l'ID traccia
Quando analizzi un'applicazione, potresti voler correlare i dati di log e di traccia. Un'opzione è creare una vista di analisi che esegua il join e riporti i campi selezionati.
La seguente query unisce i dati di log e traccia utilizzando gli ID span e traccia:
SELECT
T.trace_id,
T.span_id,
T.name,
T.start_time,
T.duration_nano,
L.log_name,
L.severity,
L.json_payload,
L.text_payload,
L.proto_payload,
L.insert_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
`PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
-- Join log and trace data by both the span ID and trace ID.
-- Don't join only on span ID because this field isn't globally unique.
T.span_id = L.span_id
-- A regular expression is required because the storage format of the trace ID
-- differs between a log view and a trace view.
AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')
Prima di utilizzare la query, imposta i valori delle seguenti variabili:
- PROJECT_ID: l'identificatore del progetto.
- BUCKET_ID: il nome o l'ID del bucket di log.
- LOG_VIEW_ID: l'identificatore della visualizzazione dei log, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.
Nell'esempio, nota che sia la visualizzazione log sia la visualizzazione osservabilità si trovano nella stessa posizione, us. Una vista di analisi può eseguire query su più viste, ma
queste devono trovarsi nella stessa posizione.
Limitazioni
Alle visualizzazioni di Analytics si applicano le seguenti limitazioni:
- Una vista di analisi può eseguire query solo su visualizzazioni di log e di osservabilità.
- La risorsa padre di una vista di analisi deve essere un progetto Google Cloud .
- Puoi eseguire query su una vista di analisi solo utilizzando la pagina Observability Analytics e solo quando utilizzi il motore di query Observability Analytics (predefinito).
- Tutte le viste che una vista di analisi interroga devono trovarsi nella stessa posizione.
- Per creare o gestire le viste di analisi, devi utilizzare la console Google Cloud .
- Puoi creare al massimo 100 viste Analytics per Google Cloud progetto.
- Puoi creare al massimo 50 viste Analytics per regione.
- Per Google Cloud progetto, al massimo 10 regioni possono contenere una vista di analisi.
Passaggi successivi
- Crea, esegui query e gestisci le viste di Analytics.
- Esegui query e analizza la telemetria con Observability Analytics.
- Grafici dei risultati delle query SQL.
- Salva e condividi le query.
- Query SQL di esempio.