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 generano report e aggregare 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 della 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 tabelle comuni. Per saperne di più su come eseguire query sui log, consulta i seguenti documenti:

Poiché la fatturazione Cloud utilizza il volume fatturabile per determinare i costi, puoi scrivere query che ti aiutino 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 della pagina Prezzi di Google Cloud Observability.

Il volume fatturabile di una voce di log non corrisponde alle dimensioni dell'oggetto LogEntry 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 che devi completare prima di poter utilizzare Observability Analytics.

Configura i bucket di log

Assicurati che sia stato eseguito l'upgrade dei bucket di log per utilizzare Observability Analytics:

  1. Nella console Google Cloud , 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 visualizzazione log che vuoi interrogare, assicurati che la colonna Analisi dell'osservabilità 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 visualizzazioni dei log, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

    • Per eseguire query sui bucket di log _Required e _Default: Visualizzatore log (roles/logging.viewer)
    • Per eseguire query su tutte le visualizzazioni log in un progetto: Logs View Accessor (roles/logging.viewAccessor)

    Puoi limitare un'entità a una visualizzazione di log specifica aggiungendo una condizione IAM alla concessione del ruolo Accessore visualizzazione log effettuata a livello di progetto oppure aggiungendo un'associazione IAM al file della policy della visualizzazione di log. Per saperne di più, consulta Controllare l'accesso a una visualizzazione log.

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

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

Query di esempio

Questa sezione fornisce query di esempio che analizzano i dati di una singola visualizzazione log. Se memorizzi i dati in più visualizzazioni log e vuoi calcolare i valori aggregati per i dati memorizzati in queste visualizzazioni, 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:

Query per volume di log per app

Per calcolare il totale dei byte al giorno per app per le voci di log scritte in relazione a 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.

Query per volume di log per nome log

Per elencare il numero di byte archiviati e il nome del log per ogni voce di log con un payload JSON e scritta in base a 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 rappresenti questi dati in un grafico, puoi visualizzare la porzione di 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.

Utilizza lo strumento a riga di comando bq per eseguire query sul volume dei log in base al nome del log

Puoi includere il campo storage_bytes nelle query eseguite tramite la pagina BigQuery Studio 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:

  • È stato eseguito l'upgrade del bucket di log per utilizzare Observability Analytics.
  • La query viene eseguita nella pagina Observability Analytics o in qualsiasi punto in cui puoi eseguire query sui set di dati BigQuery, incluse le pagine BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

  • La voce di log è stata scritta a partire dal 1° gennaio 2024.