Menganalisis volume log dengan Log Analytics

Dokumen ini menjelaskan cara menggunakan Log Analytics untuk memperkirakan volume entri log yang dapat ditagih. Anda dapat menulis kueri yang melaporkan dan menggabungkan volume yang dapat ditagih menurut dimensi yang berbeda, seperti jenis resource atau nama aplikasi, lalu membuat diagram dan melihat hasil kueri.

Cara membuat kueri untuk volume yang dapat ditagih

Volume entri log yang dapat ditagih, yang merupakan ukuran yang dilaporkan ke Penagihan Cloud, tersedia melalui kolom storage_bytes. Dalam kueri, Anda dapat menggunakan kolom storage_bytes dengan cara yang sama seperti menggunakan kolom skema yang jenis datanya adalah INTEGER. Misalnya, Anda dapat menyertakannya dalam klausa SELECT, dalam pernyataan CASE, dan dalam ekspresi tabel umum. Untuk mengetahui informasi selengkapnya tentang cara membuat kueri log, lihat dokumen berikut:

Karena Penagihan Cloud menggunakan volume yang dapat ditagih saat menentukan biaya, Anda dapat menulis kueri yang membantu Anda memahami sumber biaya. Misalnya, Anda dapat menulis kueri yang membantu menentukan aplikasi mana yang menulis entri log terbanyak. Untuk mempelajari cara mengaitkan volume yang dapat ditagih dengan biaya, lihat ringkasan harga Cloud Logging dan harga Cloud Logging.

Volume entri log yang dapat ditagih bukanlah ukuran objek LogEntry yang dikirim ke Cloud Logging API. Volume yang dapat ditagih mencakup byte yang diperlukan untuk serialisasi dan metadata.

Sebelum memulai

Bagian ini menjelaskan langkah-langkah yang harus Anda selesaikan sebelum dapat menggunakan Log Analytics.

Mengonfigurasi bucket log

Pastikan bucket log Anda telah diupgrade untuk menggunakan Log Analytics:

  1. Di konsol Google Cloud, buka halaman Logs Storage:

    Buka Penyimpanan Log

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Untuk setiap bucket log yang memiliki tampilan log yang ingin Anda buat kuerinya, pastikan kolom Log Analytics tersedia menampilkan Buka. Jika Upgrade ditampilkan, klik Upgrade dan selesaikan dialog.

Mengonfigurasi peran dan izin IAM

Bagian ini menjelaskan peran atau izin IAM yang diperlukan untuk menggunakan Log Analytics:

  • Untuk mendapatkan izin yang Anda perlukan guna menggunakan Log Analytics dan tampilan log kueri, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

    • Untuk membuat kueri bucket log _Required dan _Default: Logs Viewer (roles/logging.viewer)
    • Untuk membuat kueri semua tampilan log dalam project: Logs View Accessor (roles/logging.viewAccessor)

    Anda dapat membatasi akun utama ke tampilan log tertentu dengan menambahkan kondisi IAM ke pemberian peran Logs View Accessor yang dilakukan di tingkat project, atau dengan menambahkan binding IAM ke file kebijakan tampilan log. Untuk mengetahui informasi selengkapnya, lihat Mengontrol akses ke tampilan log.

    Izin ini sama dengan izin yang Anda perlukan untuk melihat entri log di halaman Logs Explorer. Untuk mengetahui informasi tentang peran tambahan yang Anda perlukan untuk membuat kueri tampilan di bucket yang ditentukan pengguna atau untuk membuat kueri tampilan _AllLogs dari bucket log _Default, lihat Peran Cloud Logging.

  • Untuk mendapatkan izin yang diperlukan guna membuat kueri tampilan analisis, minta administrator untuk memberi Anda peran IAM Observability Analytics User (roles/observability.analyticsUser) di project Anda.

Sampel kueri

Bagian ini memberikan contoh kueri yang menganalisis data dari satu tampilan log. Jika Anda menyimpan data di beberapa tampilan log dan ingin menghitung nilai agregat untuk data yang disimpan dalam tampilan tersebut, Anda harus menggunakan pernyataan UNION.

Anda dapat membuat kueri entri log menggunakan halaman Log Analytics atau di mana pun Anda dapat membuat kueri set data BigQuery, yang mencakup halaman BigQuery Studio dan Looker Studio, serta alat command line bq.

Untuk menggunakan kueri contoh, lakukan hal berikut:

  • Halaman Log Analytics: Ganti TABLE_NAME_OF_LOG_VIEW dengan nama tampilan log. Formatnya adalah project_ID.region.bucket_ID.view_ID.

    Buka Log Analytics

  • Set data BigQuery: Ganti TABLE_NAME_OF_LOG_VIEW dengan jalur ke tabel di set data tertaut.

    Buka BigQuery Studio

Membuat kueri untuk volume log menurut aplikasi

Untuk menghitung total byte per hari, per aplikasi, untuk entri log yang ditulis pada resource Google Kubernetes Engine dan memiliki payload JSON, gunakan kueri berikut:

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

Untuk memvisualisasikan data, Anda dapat membuat diagram.

Pada contoh berikut, data ditampilkan sebagai diagram batang bertumpuk. Setiap batang pada diagram menampilkan jumlah total byte yang disimpan, yang diatur berdasarkan aplikasi. Dalam contoh ini, aplikasi frontend menghasilkan data log terbanyak:

Contoh diagram yang menampilkan hasil kueri volume log menurut aplikasi.

Membuat kueri untuk volume log berdasarkan nama log

Untuk mencantumkan jumlah byte yang disimpan dan nama log untuk setiap entri log yang memiliki payload JSON dan ditulis terhadap resource Google Kubernetes Engine, gunakan kueri berikut;

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

Kueri sebelumnya tidak menggabungkan hasil, tetapi ada satu baris untuk setiap entri log, dan baris tersebut berisi nama log dan jumlah byte yang disimpan. Jika membuat diagram data ini, Anda dapat memvisualisasikan bagian data log yang ditulis ke log yang berbeda:

Contoh diagram yang menampilkan hasil kueri volume log berdasarkan nama log.

Diagram sebelumnya menunjukkan bahwa sebagian besar data log ditulis ke log bernama stdout.

Menggunakan alat command line bq untuk membuat kueri volume log berdasarkan nama log

Anda dapat menyertakan kolom storage_bytes dalam kueri yang dijalankan melalui halaman BigQuery Studio atau menggunakan alat command line bq.

Kueri berikut melaporkan nama log dan jumlah byte yang disimpan untuk setiap entri log:

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

Hasil kueri ini mirip dengan berikut ini:

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

Setiap baris sesuai dengan satu entri log. Nilai kolom storage_bytes adalah volume yang dapat ditagih untuk entri log tersebut.

Batasan

Kolom storage_bytes hanya tersedia jika hal berikut benar:

  • Bucket log diupgrade untuk menggunakan Log Analytics.
  • Kueri Anda dijalankan di halaman Log Analytics atau di mana pun Anda dapat membuat kueri untuk set data BigQuery, yang mencakup halaman BigQuery Studio dan Looker Studio, serta alat command line bq.

  • Entri log ditulis pada atau setelah 1 Januari 2024.