Analizzare il volume dei log con Analisi dei log

Questo documento descrive come utilizzare Analisi dei log per stimare il volume fatturabile delle voci di log. Puoi scrivere query che generino report e aggregare il volume fatturabile per dimensioni diverse, ad esempio tipo di risorsa o nome dell'applicazione, per poi tracciare grafici e visualizzare i risultati della query.

Come eseguire query sul volume fatturabile

Il volume fatturabile di una voce di log, ovvero le dimensioni segnalate al 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 con tipo di dati INTEGER. Ad esempio, puoi includerlo nelle clausole SELECT, nelle istruzioni CASE e nelle espressioni di tabella comuni. Per ulteriori informazioni 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 l'origine dei costi. Ad esempio, puoi scrivere query che ti aiutino a determinare quali applicazioni scrivono il maggior numero di voci di log. Per scoprire come collegare il volume fatturabile ai costi, consulta il riepilogo dei prezzi di Cloud Logging e i prezzi di Cloud Logging.

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

  1. Per ottenere le autorizzazioni necessarie per utilizzare Analisi dei log per eseguire query e visualizzare i log, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:

    Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  2. Per le viste dei log su cui vuoi eseguire una query, vai alla pagina Archiviazione dei log e verifica che i bucket di log che archiviano queste viste log vengano aggiornati in modo da utilizzare Analisi dei log. Se necessario, esegui l'upgrade del bucket di log.

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

    Vai ad Archiviazione dei log

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

  3. (Facoltativo) Se vuoi eseguire query sui dati di log utilizzando un set di dati BigQuery, crea un set di dati BigQuery collegato.

Query di esempio

Questa sezione fornisce esempi di query che analizzano i dati da un'unica vista di log. Se archivi i dati in più viste di log e vuoi calcolare valori aggregati per i dati archiviati in queste viste, devi utilizzare l'istruzione UNION.

Puoi eseguire query sulla voce di log utilizzando la pagina Analisi dei log o ovunque puoi eseguire query su set di dati BigQuery, tra cui le pagine di BigQuery Studio e Looker Studio e lo strumento a riga di comando bq.

Per utilizzare le query di esempio, segui questi passaggi:

Query per il volume di log per app

Per calcolare i byte totali giornalieri per app per le voci di log scritte in base a una risorsa Google Kubernetes Engine e con un payload JSON, utilizza la query seguente:

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `TABLE`
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 il maggior numero di dati di log:

Grafico di esempio che mostra i risultati delle query sul volume di log per app.

Query sul volume di log per nome log

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

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

La query precedente non aggrega i risultati, ma è presente una riga per ogni voce di log, che 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 come scritta in diversi log:

Grafico di esempio che mostra i risultati dell'esecuzione di query sul volume di 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.

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

Puoi includere il campo storage_bytes nelle query che esegui tramite la pagina di 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 `TABLE`'

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 la voce di log.

Limitazioni

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

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

  • La voce di log è stata scritta il 1° gennaio 2024 o in una data successiva.