Puoi eseguire query e analizzare i dati di log e traccia utilizzando SQL in Observability Analytics per scoprire le tendenze delle prestazioni, generare insight aggregati e visualizzare i risultati in grafici e tabelle.
Puoi anche salvare i risultati delle query nelle tue dashboard personalizzate. Se vuoi visualizzare singole voci di log o esaminare tracce e intervalli specifici, utilizza la pagina Esplora log o la pagina Trace Explorer.
Informazioni sui set di dati BigQuery collegati
Non è necessario un set di dati BigQuery collegato per eseguire query sui dati di log, sui dati di traccia o su entrambi i tipi di dati quando utilizzi la pagina Observability Analytics.
Tuttavia, è necessario un set di dati BigQuery collegato se vuoi:
- Unire i dati di log o di traccia ad altri set di dati BigQuery.
- Eseguire query sui dati di log o di traccia da un altro servizio, ad esempio la pagina BigQuery Studio o Data Studio.
- Esegui query di Observability Analytics sul motore BigQuery utilizzando slot on demand o slot riservati di BigQuery.
- Crea una policy di avviso che monitori il risultato di una query SQL. Per saperne di più, consulta Logging: monitora i risultati delle query SQL e Trace: monitora i risultati delle query SQL.
Questo documento non descrive come creare un set di dati BigQuery collegato, che è un processo specifico per ogni tipo di dati. Per informazioni su come creare un set di dati BigQuery collegato, consulta Esegui query sui dati di log utilizzando un set di dati BigQuery collegato o Esegui query sui dati di traccia utilizzando un set di dati BigQuery collegato.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Per ottenere le autorizzazioni necessarie per caricare la pagina Observability Analytics, scrivere, eseguire e salvare query private sui dati di traccia, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Observability View Accessor (
roles/observability.viewAccessor) sulle visualizzazioni di osservabilità su cui vuoi eseguire query. Questo ruolo supporta le condizioni IAM, che consentono di limitare la concessione a una visualizzazione specifica. Se non associ una condizione alla concessione del ruolo, l'entità può accedere a tutte le visualizzazioni di osservabilità. - Observability Analytics User (
roles/observability.analyticsUser) sul tuo progetto. Questo ruolo contiene le autorizzazioni necessarie per salvare ed eseguire query private ed eseguire query condivise. - Visualizzatore log (
roles/logging.viewer) sul progetto - Logs View Accessor (
roles/logging.viewAccessor) nel progetto che archivia le visualizzazioni log su cui vuoi eseguire query.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
- Observability View Accessor (
Esegui query sui dati di log e traccia
Questa sezione descrive gli approcci che puoi utilizzare per eseguire query sui dati di log e di traccia:
- Carica una query definita dal sistema, modificala ed eseguila.
- Inserisci ed esegui una query personalizzata. Ad esempio, puoi incollare una query che hai o scriverne una. Le query personalizzate possono includere join, query nidificate e altre istruzioni SQL complesse. Per esempi, consulta Esempi di query SQL.
- Crea una query effettuando selezioni dai menu, quindi eseguila. Observability Analytics converte le tue selezioni in una query SQL, che puoi visualizzare e modificare.
Carica, modifica ed esegui la query definita dal sistema
-
Nella console Google Cloud , vai alla pagina manage_search Observability Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nel menu Visualizzazioni, seleziona una visualizzazione.
Per trovare la vista su cui eseguire la query, utilizza la barra filter_list Filtro o scorri l'elenco:
- Le visualizzazioni dei log, elencate nella sezione Log del , sono ordinate in base agli ID bucket e visualizzazione.
- Le viste di analisi, elencate nella sezione Viste di analisi di , sono ordinate in base alla località e all'ID della vista.
- Esiste una visualizzazione delle tracce, elencata nella sezione
Tracce.
Se non vedi una visualizzazione denominata
_Trace.Spans._AllSpans, significa che il tuo progettoGoogle Cloud non contiene un bucket di osservabilità denominato_Trace. Per informazioni su come risolvere questo errore, consulta Inizializzazione dello spazio di archiviazione delle tracce non riuscita.
Esegui una delle seguenti operazioni:
Per caricare una query definita dal sistema che si basa su Query Builder, che ti consente di definire la query con le selezioni dei menu, assicurati che nel riquadro Query sia visualizzato Query Builder. Se viene visualizzato un editor SQL, fai clic su tune Builder.
Per caricare una query definita dal sistema che estrae i valori JSON, assicurati che nel riquadro Query sia visualizzato l'editor SQL. Se in questo riquadro viene visualizzato Query Builder, fai clic su code SQL.
Nel riquadro Schema, seleziona Query e poi fai clic su Sovrascrivi.
Il riquadro Query mostra una query definita dal sistema. Se hai selezionato la modalità Query Builder, ma vuoi visualizzare la query SQL, fai clic su code SQL.
(Facoltativo) Modifica la query.
Per eseguire la query, vai alla barra degli strumenti e seleziona Esegui query.
Observability Analytics presenta i risultati della query in una tabella. Tuttavia, puoi creare un grafico e salvare la tabella o il grafico in una dashboard personalizzata. Per saperne di più, consulta Grafici dei risultati delle query SQL.
Se la barra degli strumenti mostra Esegui in BigQuery, devi cambiare Observability Analytics per utilizzare il motore di query predefinito. Per apportare questa modifica, nella barra degli strumenti del riquadro Query, fai clic su settings Impostazioni e poi seleziona Analytics (predefinito).
Inserisci ed esegui una query personalizzata
Per inserire una query SQL:
-
Nella console Google Cloud , vai alla pagina manage_search Observability Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nel riquadro Query, fai clic su code SQL.
Per specificare un intervallo di tempo, ti consigliamo di utilizzare il selettore dell'intervallo di tempo. Se aggiungi una clausola
WHEREche specifica il campotimestamp, questo valore sostituisce l'impostazione nel selettore dell'intervallo di tempo e il selettore viene disattivato.Per esempi, consulta Esempi di query SQL.
La vista su cui esegui la query determina il formato della clausola
FROM:Dati di log
Puoi eseguire query su visualizzazioni log o viste di analisi. Utilizza il seguente formato per la clausola
FROM:- Visualizzazioni log:
FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
- Viste di Analytics:
FROM `analytics_view.PROJECT_ID.LOCATION.ANALYTICS_VIEW_ID`
I campi delle espressioni precedenti hanno il seguente significato:
- PROJECT_ID: l'identificatore del progetto.
- LOCATION: la posizione della visualizzazione dei log o della vista di analisi.
- BUCKET_ID: il nome o l'ID del bucket di log.
- LOG_VIEW_ID: l'identificatore della visualizzazione log, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.
- ANALYTICS_VIEW_ID: l'ID della vista di analisi, che è limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.
Se nel riquadro delle query viene visualizzato un messaggio di errore che fa riferimento all'istruzione
FROM, la vista non è stata trovata. Per informazioni su come risolvere questo errore, consulta Errore: la clausolaFROMdeve contenere esattamente una visualizzazione log.Dati di Trace
L'editor SQL visualizza il nome completo della vista
_Trace.Spans._AllSpans, che ha il seguente formato:FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
I campi nell'espressione precedente hanno il seguente significato:
- PROJECT_ID: l'identificatore del progetto.
- LOCATION: la posizione del bucket di osservabilità.
Se nel riquadro delle query viene visualizzato un messaggio di errore che fa riferimento all'istruzione
FROM, la vista non è stata trovata. Per informazioni su come risolvere questo errore, consulta Messaggio di errore che indica che una vista non esiste.- Visualizzazioni log:
Per eseguire la query, vai alla barra degli strumenti e seleziona Esegui query.
Observability Analytics presenta i risultati della query in una tabella. Tuttavia, puoi creare un grafico e salvare la tabella o il grafico in una dashboard personalizzata. Per saperne di più, consulta Grafici dei risultati delle query SQL.
Se la barra degli strumenti mostra Esegui in BigQuery, devi cambiare Observability Analytics per utilizzare il motore di query predefinito. Per apportare questa modifica, nella barra degli strumenti del riquadro Query, fai clic su settings Impostazioni e poi seleziona Analytics (predefinito).
Crea, modifica ed esegui una query
L'interfaccia di Query Builder ti consente di creare una query effettuando selezioni dai menu. Observability Analytics converte le tue selezioni in una query SQL, che puoi visualizzare e modificare. Ad esempio, puoi iniziare utilizzando l'interfaccia di Query Builder e poi passare all'editor SQL per perfezionare la query.
Observability Analytics può sempre convertire le selezioni dei menu dall'interfaccia di Query Builder in una query SQL. Tuttavia, non tutte le query SQL possono essere rappresentate dall'interfaccia di Query Builder. Ad esempio, le query con join non possono essere rappresentate da questa interfaccia.
Per creare una query, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina manage_search Observability Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Se nel riquadro Query viene visualizzato un editor SQL, seleziona tune Builder, che apre il riquadro Query Builder.
Utilizza il menu Origine per selezionare la vista su cui vuoi eseguire la query. Le tue selezioni vengono mappate alla clausola
FROMnella query SQL.(Facoltativo) Utilizza i seguenti menu per limitare o formattare la tabella dei risultati:
Cerca in tutti i campi: cerca le stringhe corrispondenti. Le tue selezioni vengono mappate alla clausola
WHEREnella query SQL.Colonne: seleziona le colonne visualizzate nella tabella dei risultati. Le tue selezioni vengono mappate alle clausole
SELECTnella query SQL.Quando selezioni un nome di campo in questo menu, si apre una finestra di dialogo. In questa finestra di dialogo, puoi:
Utilizza il menu per aggregare o raggruppare i dati.
Per evitare errori di sintassi, qualsiasi aggregazione e raggruppamento applicati a una colonna vengono applicati automaticamente anche alle altre colonne. Per un esempio di come aggregare e raggruppare le voci, consulta Raggruppa e aggrega i dati utilizzando Query Builder.
Consente di trasmettere un valore di qualsiasi tipo in un altro tipo di dati specificato. Per saperne di più, consulta la documentazione relativa a
CAST.Estrai una sottostringa di valori utilizzando le espressioni regolari. Per saperne di più, consulta la documentazione relativa a
REGEXP_EXTRACT.
Filtri: aggiungi filtri se vuoi limitare la query agli intervalli che contengono un attributo o un ID intervallo specifico. Il menu elenca tutte le opzioni di filtro disponibili. Le tue selezioni vengono mappate alla clausola
WHEREnella query SQL.Ordina per: imposta le colonne in base alle quali ordinare e se l'ordinamento è crescente o decrescente. Le tue selezioni vengono mappate alla clausola
ORDER BYnella query SQL.Limite: imposta il numero massimo di righe nella tabella dei risultati. Le tue selezioni vengono mappate alla clausola
LIMITnella query SQL.
Per eseguire la query, vai alla barra degli strumenti e seleziona Esegui query.
Observability Analytics presenta i risultati della query in una tabella. Tuttavia, puoi creare un grafico e salvare la tabella o il grafico in una dashboard personalizzata. Per saperne di più, consulta Grafici dei risultati delle query SQL.
Se la barra degli strumenti mostra Esegui in BigQuery, devi cambiare Observability Analytics per utilizzare il motore di query predefinito. Per apportare questa modifica, nella barra degli strumenti del riquadro Query, fai clic su settings Impostazioni e poi seleziona Analytics (predefinito).
Esempio: raggruppa e aggrega i dati utilizzando Query Builder
Quando selezioni una colonna in Query Builder, ogni campo include un menu in cui puoi aggiungere raggruppamento e aggregazione. Il raggruppamento ti consente di organizzare i dati in gruppi in base al valore di una o più colonne, mentre l'aggregazione ti consente di eseguire calcoli su questi gruppi per restituire un singolo valore.
Ogni campo selezionato nell'elemento Colonne ha un menu associato con le seguenti opzioni:
- Nessuna: non raggruppare o aggregare in base a questo campo.
- Aggrega: raggruppa i campi elencati nell'elemento Colonne, tranne quando il campo ha una selezione Aggrega. Per questi campi, calcola il valore eseguendo un'operazione su tutte le voci di ogni raggruppamento. L'operazione potrebbe essere il calcolo della media di un campo o un'azione come il conteggio del numero di voci in ogni raggruppamento.
- Raggruppa per: raggruppa le voci in base a tutti i campi elencati nell'elemento Colonne.
Gli esempi seguenti mostrano come creare una query che raggruppa le voci e poi esegue un tipo di aggregazione.
Esempio di aggregazione dei dati di log
Questo esempio mostra come utilizzare Query Builder per raggruppare le voci di log in base alla gravità e al timestamp, quindi calcolare la media del campo http_request.response_size per ogni gruppo:
Nel menu Colonne, seleziona i campi
timestamp,severityehttp_request.response_size.Per raggruppare i dati, fai clic sul campo
timestampper aprire la finestra di dialogo delle impostazioni. In questa finestra di dialogo, seleziona l'opzione Raggruppa per e imposta Granularità di troncamento suHOUR. Il raggruppamento viene quindi applicato automaticamente a tutti gli altri campi per evitare errori di sintassi. Se sono presenti campi non validi in cui non è possibile applicare il raggruppamento, viene visualizzato un messaggio di errore. Per risolvere questo errore, rimuovi i campi non validi dal menu.Per eseguire l'aggregazione sul campo
http_request.response_size, fai clic sul campo per aprire la finestra di dialogo delle impostazioni. In questa finestra di dialogo, seleziona Aggrega. Nel menu Aggregazione, fai clic su Media.
Nel menu Filtri, aggiungi
http_request.response_sizee imposta il comparatore suIS NOT NULL. Questo filtro corrisponde alle voci di log che contengono un valoreresponse_size.I menu di Query Builder sono simili ai seguenti:

Per eseguire la query, vai alla barra degli strumenti e seleziona Esegui query.
Il risultato di questa query è simile al seguente:
+-----------------------------------+----------+---------------+ | Row | hour_timestamp | severity | response_size | | | TIMESTAMP | STRING | INTEGER | +-----+-----------------------------+----------+---------------+ | 1 | 2025-10-06 16:00:00.000 UTC | NOTICE | 3082 | | 2 | 2025-10-06 17:00:00.000 UTC | WARNING | 338 | | 3 | 2025-10-06 16:00:00.000 UTC | INFO | 149 |
La query SQL corrispondente per l'esempio precedente è la seguente:
SELECT
-- Truncate the timestamp by hour.
TIMESTAMP_TRUNC( timestamp, HOUR ) AS hour_timestamp,
severity,
-- Compute average response_size.
AVG( http_request.response_size ) AS average_http_request_response_size
FROM
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Matches log entries that have a response_size.
http_request.response_size IS NOT NULL
GROUP BY
-- Group log entries by timestamp and severity.
TIMESTAMP_TRUNC( timestamp, HOUR ),
severity
LIMIT
1000
Esempio di aggregazione dei dati di traccia
Questo esempio mostra come utilizzare Query Builder per raggruppare gli intervalli in base a ora di inizio, nome e tipo di intervallo, quindi calcolare la durata media in nanosecondi per ogni gruppo:
- Nel menu Colonne, seleziona i campi
start_time,name,kindeduration_nano. - Per troncare l'ora di inizio all'ora, espandi il menu nella colonna
start_timee seleziona Raggruppa per. Assicurati che il menu della granularità sia impostato su Ora. Fai clic su Applica.
Quando selezioni Raggruppa per per una colonna, il sistema raggruppa le voci in base a tutte le colonne. In questo esempio, le voci sono raggruppate in base al valore troncato di
start_time, al nome dello span, al tipo di span e al valore della durata.Tuttavia, l'obiettivo di questo esempio è raggruppare le voci in base al tempo troncato, al nome dello span e al tipo di span, quindi calcolare la durata media per ogni gruppo. Nel passaggio successivo, modificherai il raggruppamento e aggiungerai un'aggregazione.
Espandi il menu nel campo
duration_nano, seleziona Aggrega e poi imposta il campo Aggregazione su Media.Quando esegui la query, ogni riga corrisponde a un gruppo, composto da un tempo troncato, un nome di intervallo e un tipo di intervallo. La voce finale di ogni riga è la durata media di tutte le voci di quel gruppo.
Il risultato di questa query è simile al seguente:
+-----------------------------------+----------------+----------+-----------------------+ | Row | hour_timestamp | span_name | kind | average_duration_nano | | | TIMESTAMP | STRING | INTEGER | FLOAT | +-----+-----------------------------+-----------+---------------+-----------------------+ | 1 | 2025-10-09 13:00:00.000 EDT | http.receive | 3 | 122138.22813990474 | 2 | 2025-10-09 13:00:00.000 EDT | query.request | 1 | 6740819304.390297 | 3 | 2025-10-09 13:00:00.000 EDT | client.handler | 2 | 6739339098.409376La query può includere più aggregazioni. Ad esempio, per aggiungere una colonna che conteggia il numero di voci in ogni gruppo, segui questi passaggi:
- Nell'elemento Colonne, fai clic su Aggiungi colonna.
- Seleziona Tutti (*).
- Nella finestra di dialogo, seleziona Aggrega, seleziona Conteggio per Aggregazione, quindi seleziona Applica.
Con questa modifica, il raggruppamento rimane invariato. Le voci sono raggruppate per ora di inizio troncata, nome intervallo e tipo di intervallo. Tuttavia, per ogni gruppo, la query calcola la durata media e il numero di voci.
La query SQL corrispondente per l'esempio precedente è la seguente:
WITH
scope_query AS (
SELECT
*
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` )
SELECT
-- Report the truncated start time, span name, span kind, average duration and number
-- of entries for each group.
TIMESTAMP_TRUNC( start_time, HOUR ) AS hour_start_time,
name AS span_name,
kind,
AVG( duration_nano ) AS average_duration_nano,
COUNT( * ) AS count_all
FROM
scope_query
GROUP BY
TIMESTAMP_TRUNC( start_time, HOUR ),
name,
kind
LIMIT
100
Visualizza lo schema
Lo schema definisce il modo in cui vengono archiviati i dati, inclusi i campi e i relativi tipi di dati. Queste informazioni sono importanti perché lo schema determina i campi su cui eseguire query e se devi eseguire il cast dei campi in tipi di dati diversi. Ad esempio, per scrivere una query che calcola la latenza media delle richieste HTTP, devi sapere come accedere al campo della latenza e se è archiviato come numero intero come 100 o come stringa come "100". Se i dati sulla latenza sono archiviati come stringa, la query deve eseguire il cast del valore in un valore numerico prima di calcolare una media.
Per identificare lo schema:
-
Nella console Google Cloud , vai alla pagina manage_search Observability Analytics:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nel menu Visualizzazioni, seleziona una visualizzazione.
Il riquadro Schema viene aggiornato. Observability Analytics deduce automaticamente i campi di una colonna quando il tipo di dati è JSON. Per visualizzare la frequenza con cui questi campi dedotti vengono visualizzati nei dati, fai clic su more_vert Opzioni e seleziona Visualizza informazioni e descrizione.
Dati di log
Per le visualizzazioni dei log, lo schema è fisso e corrisponde a
LogEntry. Per le viste di analisi, puoi modificare la query SQL per cambiare lo schema.Dati di Trace
Per scoprire di più sullo schema, consulta Schema di archiviazione per i dati di traccia.
Se non vedi una visualizzazione denominata
_Trace.Spans._AllSpans, significa che il tuo progettoGoogle Cloud non contiene un bucket di osservabilità denominato_Trace. Per informazioni su come risolvere questo errore, consulta Inizializzazione dello spazio di archiviazione delle tracce non riuscita.
Limitazioni
Se vuoi eseguire query su più visualizzazioni, queste devono trovarsi nella stessa località. Ad esempio, se memorizzi due viste nella località us-east1, una query può eseguire query su entrambe le viste. Puoi anche eseguire query su due viste archiviate nella
multiregione us. Tuttavia, se la località di una vista è global, questa può trovarsi in qualsiasi località fisica. Pertanto, i join tra due viste con la località global potrebbero non riuscire.
Per un elenco delle limitazioni che si applicano ai dati di log, consulta Observability Analytics: limitazioni.