Informazioni sulle viste Analytics

Questo documento descrive le viste di Analytics e quando potrebbe essere utile crearle. Descrive inoltre le differenze tra le viste di Analytics e le query salvate.

Panoramica

Una vista Analytics è una risorsa su cui puoi eseguire query. ovvero, dopo aver definito una vista Analytics, puoi scrivere query in cui specificare la vista Analytics nella clausola FROM.

Il vantaggio principale dell'utilizzo delle visualizzazioni di analisi è che non sei vincolato a eseguire query sui dati nel formato definito da un'API o da un sistema. Una visualizzazione Analytics ti consente di definire uno schema, che ti permette di semplificare le query o ridurre il tempo che dedichi alla scrittura delle query. 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 Analytics non è una vista precalcolata che memorizza periodicamente nella cache i risultati delle query. Pertanto, eseguire una query su una vista Analytics equivale a eseguire una query sulle viste elencate nella query della vista Analytics.

Le viste Analytics sono più potenti delle query salvate, ovvero query che esegui nella pagina Analisi dei log 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 visualizzazioni di Analytics: definite dall'utente e definite dal sistema:

  • Le viste di Analytics definite dall'utente sono tutte le viste di Analytics che crei. Puoi eseguire query, modificare ed eliminare le visualizzazioni di Analytics definite dall'utente.

  • Le visualizzazioni di analisi definite dal sistema sono visualizzazioni di analisi create dai serviziGoogle Cloud . Puoi eseguire query sulle viste di analisi definite dal sistema. Tuttavia, non puoi modificarli o eliminarli.

Per informazioni su come elencare le visualizzazioni di Analytics nel tuo progettoGoogle Cloud , vedi Elencare le visualizzazioni di Analytics.

Posizione delle viste Analytics

La posizione di una vista Analytics è determinata dalla posizione delle risorse che interroga. Ad esempio, se una vista Analytics esegue query su una vista log o una vista di osservabilità che si trova nella località global, anche la località della vista Analytics deve essere global. Quando utilizzi la console Google Cloud per creare una vista Analytics, la posizione viene impostata automaticamente.

Esempi di casi d'uso

Il vantaggio principale di una vista Analytics è che non sei vincolato a eseguire query sui dati nel formato definito dal sistema. Una visualizzazione Analytics ti consente di definire uno schema, che ti permette di semplificare le query o ridurre il tempo che dedichi alla loro scrittura.

Esegui 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 archiviate all'interno di campi nidificati nel campo json_payload di una voce di log.

Per semplificare le query di analisi, crea la seguente visualizzazione analitica 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 dei 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 visualizzazione Analytics. 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 settimanali per completare l'analisi. Invece di generare i dati settimanali per ogni team, crei una vista Analytics che estrae i dati settimanali. Altri team possono eseguire query sulla visualizzazione Analytics 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 visualizzazione Analytics 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 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 Analytics 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, 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 dei 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 dei log sia quella dell'osservabilità si trovano nella stessa posizione, us. Una vista Analytics può eseguire query su più viste, ma queste devono trovarsi nella stessa posizione.

Limitazioni

Alle viste Analytics si applicano le seguenti limitazioni:

  • Una visualizzazione di analisi può eseguire query solo su visualizzazioni di log e di osservabilità.
  • La risorsa padre di una vista Analytics deve essere un progetto Google Cloud .
  • Puoi eseguire query su una vista Analytics solo utilizzando la pagina Analisi dei log e solo quando utilizzi il motore di query Analisi dei log (impostazione predefinita).
  • Tutte le viste su cui viene eseguita una query da una vista Analytics devono trovarsi nella stessa posizione.
  • Per creare o gestire le tue viste di Analytics, devi utilizzare la console Google Cloud .
  • Puoi creare al massimo 100 viste Analytics per Google Cloud progetto.
  • Puoi creare un massimo di 50 viste Analytics per regione.
  • Per Google Cloud progetto, al massimo 10 regioni possono contenere una vista Analytics.

Passaggi successivi