Informazioni sulle viste Analytics

Questo documento descrive le viste di analisi e i casi in cui potresti volerle creare. Descrive inoltre le differenze tra le viste di analisi e le query salvate.

Panoramica

Una vista di analisi è una risorsa su cui puoi eseguire query. Ciò significa che, dopo aver definito una vista di analisi, puoi scrivere query in cui la specifichi nella clausola FROM.

Il vantaggio principale dell'utilizzo delle viste di analisi è che non sei vincolato a eseguire query sui 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 vista di analisi può, ad esempio, conservare solo campi specifici, rinominare i campi, spostare i campi nidificati in una colonna di primo livello ed eseguire raggruppamenti e aggregazioni.

Le viste di analisi 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 query su una vista di analisi equivale all'esecuzione di query sulle viste elencate nella query della vista di analisi.

Le viste di analisi sono più potenti delle query salvate, ovvero le 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 di analisi

Esistono due tipi di viste 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 viste di analisi definite dall'utente.

  • Le viste di analisi definite dal sistema sono viste di analisi create da Google Cloud servizi. Puoi eseguire query sulle viste di analisi definite dal sistema. Tuttavia, non puoi modificarle o eliminarle.

Per informazioni su come elencare le viste di analisi nel tuo Google Cloud progetto, consulta Elencare le viste di analisi.

Posizione delle viste di analisi

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 vista di log o una vista di osservabilità nella località global, anche la posizione della vista di analisi deve essere global. Quando utilizzi la Google Cloud console per creare una vista di analisi, la posizione viene impostata automaticamente.

Esempi di casi d'uso

Il vantaggio principale di una vista di analisi è che non sei vincolato a eseguire query sui dati nel formato definito dal sistema. Una vista di analisi ti consente di definire uno schema, semplificando le query o riducendo il tempo necessario per scriverle.

Eseguire query per i dettagli di rete

Vuoi analizzare il rendimento della rete utilizzando i log di flusso VPC. Devi analizzare il rendimento complessivo 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 località della vista di log.
  • BUCKET_ID: il nome o l'ID del bucket di log.
  • LOG_VIEW_ID: l'identificatore della vista di log, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.

Quando vuoi analizzare il rendimento della rete, esegui query sulla 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 delle API

Diversi team hanno bisogno di dati sul rendimento settimanali per completare l'analisi. Anziché generare i dati settimanali per ogni team, crea una vista di analisi che estrae i dati settimanali. Gli altri team possono eseguire query sulla vista di analisi e poi eseguire l'analisi.

La seguente query illustra 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

Estrarre il nome del servizio di traccia

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 Google Cloud progetto.

Unire i dati di traccia e di 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 di 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, 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 vista di log, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.

Nell'esempio, tieni presente che sia la vista di log sia la vista di osservabilità si trovano nella stessa località, us. Una vista di analisi può eseguire query su più viste, ma queste devono trovarsi nella stessa località.

Limitazioni

Alle viste di analisi si applicano le seguenti limitazioni:

  • Una vista di analisi può eseguire query solo su viste di log e viste di osservabilità.
  • La risorsa padre di una vista di analisi deve essere un Google Cloud progetto.
  • 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 su cui esegue query una vista di analisi devono trovarsi nella stessa località.
  • Per creare o gestire le viste di analisi, devi utilizzare la Google Cloud console.
  • Puoi creare al massimo 100 viste di analisi per Google Cloud progetto.
  • Puoi creare al massimo 50 viste di analisi per regione.
  • Per Google Cloud progetto, al massimo 10 regioni possono contenere una vista di analisi.

Passaggi successivi