Esegui query e analizza la telemetria con Observability Analytics

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:

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

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Observability API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  4. 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.

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

  1. Nella console Google Cloud , vai alla pagina Observability Analytics:

    Vai a Observability Analytics

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Nel menu Visualizzazioni, seleziona una visualizzazione.

    Per trovare la vista su cui eseguire la query, utilizza la barra 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.

  3. 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  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  SQL.

  4. 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  SQL.

  5. (Facoltativo) Modifica la query.

  6. 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 Impostazioni e poi seleziona Analytics (predefinito).

Inserisci ed esegui una query personalizzata

Per inserire una query SQL:

  1. Nella console Google Cloud , vai alla pagina Observability Analytics:

    Vai a Observability Analytics

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Nel riquadro Query, fai clic su  SQL.

    • Per specificare un intervallo di tempo, ti consigliamo di utilizzare il selettore dell'intervallo di tempo. Se aggiungi una clausola WHERE che specifica il campo timestamp, 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 clausola FROM deve 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:

      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.

  3. 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 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:

  1. Nella console Google Cloud , vai alla pagina Observability Analytics:

    Vai a Observability Analytics

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Se nel riquadro Query viene visualizzato un editor SQL, seleziona Builder, che apre il riquadro Query Builder.

  3. Utilizza il menu Origine per selezionare la vista su cui vuoi eseguire la query. Le tue selezioni vengono mappate alla clausola FROM nella query SQL.

  4. (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 WHERE nella query SQL.

    • Colonne: seleziona le colonne visualizzate nella tabella dei risultati. Le tue selezioni vengono mappate alle clausole SELECT nella 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 WHERE nella 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 BY nella query SQL.

    • Limite: imposta il numero massimo di righe nella tabella dei risultati. Le tue selezioni vengono mappate alla clausola LIMIT nella query SQL.

  5. 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 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:

  1. Nel menu Colonne, seleziona i campi timestamp, severity e http_request.response_size.

    1. Per raggruppare i dati, fai clic sul campo timestamp per aprire la finestra di dialogo delle impostazioni. In questa finestra di dialogo, seleziona l'opzione Raggruppa per e imposta Granularità di troncamento su HOUR. 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.

    2. 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.

  2. Nel menu Filtri, aggiungi http_request.response_size e imposta il comparatore su IS NOT NULL. Questo filtro corrisponde alle voci di log che contengono un valore response_size.

    I menu di Query Builder sono simili ai seguenti:

    Aggrega e raggruppa utilizzando i menu di Query Builder.

  3. 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:

  1. Nel menu Colonne, seleziona i campi start_time, name, kind e duration_nano.
  2. Per troncare l'ora di inizio all'ora, espandi il menu nella colonna start_time e seleziona Raggruppa per. Assicurati che il menu della granularità sia impostato su Ora.
  3. 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.

  4. 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.409376
    
  5. La query può includere più aggregazioni. Ad esempio, per aggiungere una colonna che conteggia il numero di voci in ogni gruppo, segui questi passaggi:

    1. Nell'elemento Colonne, fai clic su Aggiungi colonna.
    2. Seleziona Tutti (*).
    3. 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:

  1. Nella console Google Cloud , vai alla pagina Observability Analytics:

    Vai a Observability Analytics

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. 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 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.

Passaggi successivi