Analizza il volume dei log con Observability Analytics

Questo documento descrive come utilizzare Observability Analytics per stimare il volume fatturabile delle voci di log. Puoi scrivere query che riportano e aggregano il volume fatturabile in base a diverse dimensioni, come il tipo di risorsa o il nome dell'applicazione, quindi creare grafici e visualizzare i risultati delle query.

Come eseguire query per il volume fatturabile

Il volume fatturabile di una voce di log, ovvero la dimensione segnalata a Fatturazione Cloud, è disponibile tramite il campo storage_bytes. Nelle query, puoi utilizzare il campo storage_bytes nello stesso modo in cui utilizzi qualsiasi campo dello schema il cui tipo di dati è INTEGER. Ad esempio, puoi includerlo nelle clausole SELECT, nelle istruzioni CASE e nelle espressioni di tabella comuni. Per saperne di più sull'esecuzione di query sui log, consulta i seguenti documenti:

Poiché Fatturazione Cloud utilizza il volume fatturabile per determinare i costi, puoi scrivere query che ti aiutano a comprendere le origini dei costi. Ad esempio, puoi scrivere query che ti aiutano a determinare quali applicazioni scrivono il maggior numero di voci di log. Per scoprire come correlare il volume fatturabile al costo, consulta le sezioni di Cloud Logging nella pagina Prezzi di Google Cloud Observability.

Il volume fatturabile di una voce di log non è la dimensione dell'LogEntry oggetto inviato all'API Cloud Logging. Il volume fatturabile include i byte necessari per la serializzazione e i metadati.

Prima di iniziare

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

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

Configurare 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 alla vista di log effettuata 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 per eseguire query 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.

Query di esempio

Questa sezione fornisce query di esempio che analizzano i dati di una singola vista di log. Se memorizzi i dati in più viste di log e vuoi calcolare i valori aggregati per i dati memorizzati in queste viste, devi utilizzare l'istruzione UNION.

Puoi eseguire query sulla voce di log utilizzando la pagina Observability Analytics o ovunque tu possa eseguire query sui set di dati BigQuery, incluse le pagine BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

Per utilizzare le query di esempio:

Eseguire query per il volume di log per app

Per calcolare il totale dei byte al giorno, per app, per le voci di log scritte su una risorsa Google Kubernetes Engine e con un payload JSON, utilizza la seguente query:

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"
GROUP BY ALL

Per visualizzare i dati, puoi creare un grafico.

Nell'esempio seguente, i dati vengono visualizzati come grafico a barre in pila. Ogni barra del grafico mostra il numero totale di byte archiviati, organizzati per app. In questo esempio, l'app frontend genera la maggior parte dei dati di log:

Grafico di esempio che mostra i risultati della query per il volume dei log per app.

Eseguire query per il volume di log per nome del log

Per elencare il numero di byte archiviati e il nome del log per ogni voce di log con un payload JSON e scritta su una risorsa Google Kubernetes Engine, utilizza la seguente query:

SELECT
  log_id AS log_name,
  storage_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"

La query precedente non aggrega i risultati, ma esiste una riga per ogni voce di log e questa riga contiene un nome di log e il numero di byte archiviati. Se crei un grafico di questi dati, puoi visualizzare la parte dei dati di log scritti in log diversi:

Grafico di esempio che mostra i risultati della query per il volume dei log in base al nome del log.

Il grafico precedente mostra che la maggior parte dei dati di log viene scritta nel log denominato stdout.

Utilizzare lo strumento a riga di comando bq per eseguire query per il volume di log per nome del log

Puoi includere il storage_bytes campo nelle query eseguite tramite la BigQuery Studio pagina o utilizzando lo strumento a riga di comando bq.

La seguente query riporta il nome del log e il numero di byte archiviati per ogni voce di log:

bq query --use_legacy_sql=false  'SELECT log_id as log_name,
  storage_bytes FROM `VIEW`'

Il risultato di questa query è simile al seguente:

+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout   |           716 |
| stdout   |           699 |
| stdout   |           917 |
| stdout   |           704 |

Ogni riga corrisponde a una voce di log. Il valore della colonna storage_bytes è il volume fatturabile per quella voce di log.

Limitazioni

Il campo storage_bytes è disponibile solo quando sono vere le seguenti condizioni: