Grafico dei risultati della query SQL

Questo documento descrive come creare grafici dei risultati delle query di Observability Analytics, che ti consentono di identificare pattern e tendenze nei dati di log. Observability Analytics consente di cercare e aggregare i log per generare insight utili utilizzando query SQL.

Dopo aver eseguito una query, i risultati possono essere visualizzati in una tabella o convertiti in un grafico. La query e la relativa visualizzazione possono essere salvate in una dashboard. Ad esempio, per vedere quali tipi di gravità generano i log, crea un grafico che mostri i conteggi dei log generati nelle ultime 12 ore e suddividi i log per severity. Lo screenshot seguente mostra i punti dati suddivisi in diversi tipi di gravità:

Grafico di esempio che illustra una suddivisione per gravità.

Prima di iniziare

Questa sezione descrive i passaggi da completare prima di poter utilizzare Observability Analytics.

Configura i bucket di log

Assicurati che i bucket di log siano stati sottoposti ad upgrade per utilizzare Observability Analytics:

  1. Nella Google Cloud console, vai alla pagina Archiviazione dei log:

    Vai ad Archiviazione dei log

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

  2. Per ogni bucket di log con una vista di log su cui vuoi eseguire query, assicurati che la colonna Observability Analytics disponibile mostri Apri. Se viene visualizzato Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.

Configura ruoli e autorizzazioni IAM

Questa sezione descrive i ruoli o le autorizzazioni IAM necessari per utilizzare Observability Analytics:

  • Per ottenere le autorizzazioni necessarie per utilizzare Observability Analytics ed eseguire query sulle viste di log, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

    Puoi limitare un'entità a una vista di log specifica aggiungendo una condizione IAM alla concessione del ruolo Accesso alle viste di log a livello di progetto o aggiungendo un'associazione IAM al file di policy della vista di log. Per saperne di più, consulta Controllare l'accesso a una vista di log.

    Si tratta delle stesse autorizzazioni necessarie per visualizzare le voci di log nella pagina Esplora log. Per informazioni sui ruoli aggiuntivi necessari per eseguire query sulle viste nei bucket definiti dall'utente o sulla vista _AllLogs del _Default bucket di log, consulta Ruoli di Cloud Logging.

  • Per ottenere le autorizzazioni necessarie per eseguire query sulle viste di analisi, chiedi all'amministratore di concederti il ruolo IAM Utente di Observability Analytics (roles/observability.analyticsUser) nel progetto.

  • Per ottenere le autorizzazioni necessarie per creare grafici, chiedi all'amministratore di concederti il ruolo IAM Editor di Monitoring (roles/monitoring.editor) nel progetto.

Seleziona i dati da visualizzare in un grafico

Per configurare i dati da visualizzare in un grafico, crea una query utilizzando SQL. Quando selezioni la scheda Grafico, viene visualizzato un grafico con i risultati della query. Dopo aver eseguito la query e generato un grafico, puoi personalizzare la configurazione del grafico modificando il tipo di grafico e selezionando le colonne per visualizzare dati diversi.

Per visualizzare i risultati della query come grafico, esegui una query procedendo nel seguente modo:

  1. Nella Google Cloud console, vai alla Analisi dei log pagina:

    Vai ad Analisi dei log

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

  2. Nel riquadro Query, inserisci una query e fai clic su Esegui.

  3. Al termine della query, nella scheda Risultati, seleziona la modalità di visualizzazione dei risultati della query:

    • Tabella: solo formato tabulare.

    • Grafico: solo formato grafico

    • Entrambi: formato grafico e tabulare.

      Dopo aver selezionato la modalità di visualizzazione dei risultati della query, puoi configurare i campi per la visualizzazione selezionata e poi salvare la query e i risultati in una dashboard personalizzata. Il formato salvato è tabulare quando hai selezionato l'opzione Tabella. In caso contrario, il formato è un grafico.

      Per i grafici, le opzioni di visualizzazione consentono di selezionare il tipo di grafico e le righe e le colonne da rappresentare. Per saperne di più sulla configurazione dei grafici, consulta Personalizzare la configurazione dei grafici.

Personalizza la configurazione dei grafici

Puoi personalizzare la configurazione del grafico modificando il tipo di grafico, selezionando la dimensione e la misura da rappresentare e applicando una suddivisione. La dimensione viene utilizzata per raggruppare o classificare le righe ed è il valore dell'asse X. La misura, o il valore dell'asse Y, è una serie di dati tracciata sull' asse Y.

Modifica tipo di grafico

Puoi scegliere tra i seguenti tipi di grafici, a seconda del tipo di righe e colonne selezionate come dimensione e misura e della modalità di visualizzazione dei dati.

  • Grafico a barre (impostazione predefinita): i grafici a barre tracciano i dati su due assi. Se il grafico utilizza una categoria o una stringa come dimensione, puoi impostare la configurazione del grafico a barre su orizzontale o verticale, in cui gli assi della dimensione e della misura vengono scambiati.

  • Grafico a linee: i grafici a linee possono essere utilizzati per mostrare le variazioni dei dati nel tempo. Quando utilizzi un grafico a linee, ogni serie temporale viene mostrata da una linea diversa che corrisponde alle misure selezionate.

    Se l'asse X è basato sul tempo, ogni punto dati viene posizionato all'inizio di un intervallo di tempo. Ogni punto dati è collegato tramite interpolazione lineare.

  • Grafico ad area in pila: Un grafico ad area è basato su un grafico a linee e l'area sotto ogni linea è ombreggiata. Nei grafici ad area, le serie di dati sono in pila. Ad esempio, se hai due serie identiche, le serie si sovrappongono in un grafico a linee, ma l'area ombreggiata è in pila in un grafico ad area.

  • Grafico a torta o ad anello: un grafico a torta mostra la relazione tra le categorie in un set di dati e l'intero set di dati, utilizzando un cerchio per rappresentare l'intero set di dati e i settori del cerchio per rappresentare le categorie nel set di dati. La dimensione di un settore indica la percentuale di contributo della categoria al totale.

  • Tabella: una tabella mostra una riga per ogni riga nel risultato della query. Le colonne della tabella sono definite dalla clausola SELECT. Se prevedi di visualizzare i dati in formato tabulare in una dashboard, utilizza una clausola LIMIT per limitare il numero di righe nel risultato a poche centinaia.

  • Indicatore o prospetto: gli indicatori e i prospetti forniscono il valore più recente insieme a un'indicazione verde, ambra o rossa in base al confronto di questo valore con un insieme di soglie. A differenza degli indicatori, che mostrano solo informazioni sul valore più recente, i prospetti possono includere anche informazioni sui valori precedenti.

    Gli indicatori e i prospetti possono visualizzare il risultato della query solo se contiene almeno una riga e questa riga contiene una colonna con un timestamp e una colonna con dati numerici. Il risultato della query può contenere più righe e più di due colonne.

    Se vuoi eseguire l'aggregazione basata sul tempo come parte della query:

    • Configura la query in modo da aggregare i dati in un intervallo di tempo, ordinare i risultati in base ai timestamp in ordine decrescente e limitare il numero di righe nei risultati. Puoi utilizzare la clausola LIMIT o il selettore dell'intervallo di tempo per limitare il numero di righe nel risultato della query.

      Ad esempio, la seguente query esegue una query su una vista di log, aggrega i dati per ora, applica un limite e ordina i risultati:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      

      Di seguito è riportato il significato dei campi nell'espressione precedente:

      • PROJECT_ID: l'identificatore del progetto.
      • LOCATION: la posizione della vista di log o della vista di analisi.
      • BUCKET_ID: il nome o l'ID del bucket di log.
      • LOG_VIEW_ID: l'identificatore della vista di log, limitato a 100 caratteri e può includere solo lettere, cifre, trattini bassi e trattini.

    • Imposta la dimensione in modo che corrisponda alla colonna che riporta l'unità di tempo. Ad esempio, se la query aggrega i dati per un'ora e crea una colonna denominata hour, imposta il menu Dimensione su hour.

    • Seleziona Disattiva intervallo perché la query specifica già l'intervallo di aggregazione. Nell'esempio, questo intervallo è di un'ora.

    • Imposta la misura sulla colonna numerica e la funzione su nessuna.

    Se vuoi che Observability Analytics esegua l'aggregazione basata sul tempo per te:

    • Configura il selettore dell'intervallo di tempo, che influisce sul numero di righe nel risultato della query.
    • Imposta la dimensione in modo che corrisponda alla colonna che riporta l'unità di tempo. Ad esempio, puoi impostare questo menu su timestamp.
    • Imposta il menu Intervallo sull'intervallo di aggregazione su un intervallo specifico. Ad esempio, imposta il valore di questo campo su 1 hour. Non selezionare Intervallo automatico.
    • Imposta la misura sulla colonna numerica e seleziona una funzione come somma.

Modifica dimensione e misura

Puoi scegliere le righe e le colonne da rappresentare selezionando i campi dimensione e misura.

  • Dimensioni

    La dimensione deve essere una colonna di timestamp, numerica o di stringa. Per impostazione predefinita, la dimensione è impostata sulla prima colonna basata sul timestamp nello schema. Se nella query non è presente alcun timestamp, viene selezionata come dimensione la prima colonna di stringa. Puoi anche personalizzare la dimensione nel riquadro Visualizzazione grafico. Quando una colonna di timestamp viene selezionata come dimensione, il grafico mostra come cambiano i dati nel tempo. Quando una colonna di stringa viene selezionata come dimensione per un grafico a barre, puoi ordinare i dati in ordine crescente o decrescente, che ordina la dimensione in ordine lessicale. Puoi anche mantenere l'ordinamento `default`, che ordina la dimensione in base ai valori della misura corrispondente in ordine decrescente.

    Per impostazione predefinita, l'intervallo per i timestamp viene impostato automaticamente, ma puoi anche selezionare un intervallo personalizzato. Gli intervalli automatici modificano i valori in base al selettore dell'intervallo di tempo per mantenere gruppi di dimensioni simili.

    Puoi anche disabilitare l'intervallo, il che ti consente di specificare le tue aggregazioni e gli intervalli di tempo all'interno della query per un'analisi più complessa. La disattivazione dell'intervallo imposta la funzione di aggregazione delle misure su none. Quando l'intervallo di dimensioni è disattivato, sono consentite solo misure numeriche.

  • Misura

    Puoi selezionare più misure nel riquadro Visualizzazione grafico. Quando selezioni una misura, devi anche selezionare la funzione di aggregazione da eseguire sui relativi valori raggruppati, ad esempio count, sum, average e percentile-99. Ad esempio, count-distinct restituisce il numero di valori univoci in una determinata colonna.

    Se selezioni la casella di controllo Disattiva intervallo per la dimensione, è disponibile l'opzione della funzione di aggregazione none. Se la dimensione è un valore stringa, la casella di controllo Disattiva intervallo non viene visualizzata. Tuttavia, l'impostazione delle funzioni di aggregazione di una misura su none disattiva anche l'intervallo.

Aggiungi una suddivisione

Per suddividere una singola serie di dati in più serie di dati in base a un'altra colonna, aggiungi una suddivisione.

Quando selezioni una suddivisione, scegli colonne che contengono un numero ridotto di etichette brevi e significative, come region_name, anziché campi che potrebbero contenere un numero elevato di stringhe o stringhe lunghe, come textPayload.

Ad esempio, vedi la seguente configurazione del grafico, in cui il campo Dimensione è impostato su type, il campo Misura è impostato su Conteggio righe e il campo Suddivisione è impostato su severity:

Grafico di esempio che contiene una suddivisione per gravità.

Nello screenshot precedente, vedi una serie di dati in pila, in cui il tipo di risorsa k8s_container è suddiviso in diversi tipi di severity. In questo modo puoi identificare il numero di log di ogni tipo di gravità generati da una determinata risorsa.

Salva un grafico in una dashboard personalizzata

Dopo aver generato un grafico dalla query, puoi salvarlo in una dashboard personalizzata. Le dashboard personalizzate consentono di visualizzare e organizzare le informazioni utili utilizzando una varietà di tipi di widget. Queste dashboard consentono anche di definire variabili, ovvero filtri a livello di dashboard che si applicano solo a widget specifici. Per applicare una variabile a un widget, devi modificare la query. Per saperne di più, consulta Applicare una variabile a un widget.

Una dashboard mostra un messaggio di avviso per un widget che contiene una query SQL quando la query viene eseguita sul motore BigQuery e le risorse su cui viene eseguita la query non si trovano nello stesso limite di proprietà. I limiti di proprietà sono determinati da diversi fattori, uno dei quali è la gerarchia delle risorse utilizzate dalla query. Per evitare questi avvisi, configura un perimetro di servizio.

Per salvare il grafico in una dashboard:

  1. Nella Google Cloud console, vai alla Analisi dei log pagina:

    Vai ad Analisi dei log

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

  2. Esegui una query per generare un grafico, quindi fai clic su Salva grafico nella scheda Grafico.

  3. Nella finestra di dialogo Salva nella dashboard, inserisci un titolo per il grafico e seleziona la dashboard in cui vuoi salvare il grafico.

  4. (Facoltativo) Per visualizzare la dashboard personalizzata, fai clic su Visualizza dashboard nel messaggio popup.

Per visualizzare un elenco di dashboard personalizzate contenenti grafici generati da query SQL, vai al pulsante Salva grafico e fai clic su Menu.

Modifica un grafico salvato in una dashboard personalizzata

Puoi modificare un grafico dopo averlo salvato in una dashboard. Per saperne di più, consulta Modificare la configurazione di un widget. Nella finestra di dialogo Configura widget, puoi:

  • Modificare i dati su cui eseguire query.
  • Modificare la query utilizzata per generare un grafico.
  • Personalizzare la configurazione del grafico per visualizzare dati diversi.

Limitazioni

  • Se il tuo Google Cloud progetto si trova in una cartella che utilizza Assured Workloads, i grafici generati non possono essere visualizzati in una dashboard personalizzata.

  • I filtri a livello di dashboard non si applicano ai grafici generati da una query SQL.

  • Le colonne selezionate devono avere almeno una riga con un valore non nullo.

  • Se salvi una query e personalizzi la configurazione del grafico, la configurazione del grafico personalizzato non viene salvata.

  • Se la query contiene già aggregazioni, il grafico generato potrebbe essere diverso a causa dell'aggregazione aggiuntiva applicata automaticamente da Observability Analytics.

  • I percorsi JSON devono essere convertiti in stringhe o numeri per essere rappresentati in un grafico.

Query di esempio

Questa sezione fornisce query SQL di esempio per la creazione di grafici dei risultati delle query. Per ottenere insight più utili dai log, personalizza la configurazione del grafico. Per utilizzare le query di esempio:

  1. Nella Google Cloud console, vai alla Analisi dei log pagina:

    Vai ad Analisi dei log

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

  2. Identifica il nome della tabella per la vista di log su cui vuoi eseguire query.

    Per identificare questo nome, vai all'elenco Viste di log , individua la vista di log e seleziona Query. Il riquadro Query viene compilato con una query predefinita, che include il nome della tabella della vista di log su cui viene eseguita la query. Il nome della tabella ha il formato project_ID.region.bucket_ID.view_ID.

    Per saperne di più su come accedere alla query predefinita, consulta Eseguire query su una vista di log.

  3. Sostituisci VIEW con il nome della tabella della vista di log su cui vuoi eseguire query, quindi copia la query.

  4. Incolla la query nel riquadro Query, quindi fai clic su Esegui query.

Crea un grafico delle voci di log per località e gravità

La seguente query seleziona location e severity, con la località convertita in una stringa:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `VIEW`
WHERE resource.labels.location IS NOT NULL

Un grafico e una configurazione del grafico di esempio sono simili ai seguenti:

Grafico di esempio che traccia le voci di log per posizione e gravità.

Nello screenshot precedente, la configurazione del grafico ha la seguente configurazione:

  • Tipo di grafico: grafico a barre, orizzontale
  • Dimensione: location, con un limite di 10
  • Misura: Conteggio righe
  • Suddivisione: severity, con un limite di cinque

Crea un grafico degli audit log di accesso ai dati di BigQuery

La seguente query filtra gli audit log data_access di BigQuery e seleziona determinati campi, come user_email, ip, auth_permission e job_execution_project. Ad esempio, puoi creare un grafico che visualizzi la frequenza di utilizzo dell'API BigQuery di ogni principal nel tempo.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `VIEW` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

Un grafico e una configurazione del grafico di esempio sono simili ai seguenti:

Grafico di esempio per gli audit log per l'accesso ai dati di BigQuery

Nello screenshot precedente, la configurazione del grafico ha la seguente configurazione:

  • Tipo di grafico: grafico a barre, verticale
  • Dimensione: user_email, con un limite di cinque
  • Misura: Conteggio righe
  • Suddivisione: auth_permission, con un limite di cinque

Passaggi successivi