Melihat, menelusuri, dan memfilter log permintaan web situs Anda dengan Cloud Logging

Anda dapat menautkan project Firebase ke Cloud Logging untuk melihat, menelusuri, dan memfilter log permintaan web untuk setiap situs Hosting Anda. Log ini berasal dari CDN yang secara otomatis disediakan oleh Firebase, sehingga setiap permintaan ke situs Anda dan data permintaan terkait akan dicatat ke dalam log.

Berikut adalah beberapa hal yang dapat Anda lakukan dengan log Cloud Logging. Buka setiap bagian halaman ini untuk mempelajari detailnya.

Jika memiliki beberapa situs Hosting dalam project, Anda dapat memilih situs Hosting mana yang akan mengekspor log. Selanjutnya, Anda dapat memfilter dan melihat data log menurut situs Hosting dan bahkan menurut domain. Dengan memilih situs Hosting tertentu untuk mengekspor log, Anda juga dapat mengontrol jumlah data yang diproses untuk project Anda.

  1. Klik Link di kartu integrasi Cloud Logging di Firebase console.

    Untuk menautkan atau membatalkan tautan Cloud Logging, Anda memerlukan izin yang termasuk dalam salah satu peran berikut: Pemilik atau Editor project atau Admin Firebase Develop.

  2. Ikuti petunjuk di layar untuk memilih situs Hosting mana yang harus mengekspor log ke Cloud Logging.

    Jika Anda sudah memiliki satu atau beberapa situs Hosting aktif, alur kerja penautan menampilkan estimasi tingkat penggunaan data untuk log dari setiap situs Hosting Anda. Nilai ini merupakan estimasi dari 30 hari terakhir.

Setelah menautkan ke Cloud Logging, log untuk semua permintaan baru ke situs Hosting Anda biasanya akan muncul dalam waktu 30 menit setelah permintaan dibuat.

Anda juga dapat membatalkan tautan Firebase Hosting dari Cloud Logging, yang menghentikan ekspor log permintaan web ke Cloud Logging.

Memantau penggunaan data Anda untuk log

Setelah menautkan ke Cloud Logging, Anda dapat melihat tingkat penggunaan data untuk log dari situs Hosting Anda:

Memahami situs Anda dengan lebih baik

Antarmuka Logs Viewer di Konsol Google Cloud menawarkan alat untuk melihat log dan data tertentu menggunakan kueri serta panel data dan filter bawaan. Pelajari lebih lanjut cara memfilter log dengan kueri di bagian berikutnya di bawah ini.

  • Dari mana asal traffic situs Anda pada tingkat yang terperinci?
    Anda dapat melihat informasi tentang setiap permintaan, termasuk IP sumber, perujuk, kota, dan status.

  • Kapan pengguna mengunjungi situs Anda?
    Anda dapat menggunakan Panel histogram untuk melihat distribusi berdasarkan rentang waktu tertentu. Ini dapat memberi Anda insight tentang puncak dan penurunan normal dari penggunaan aplikasi Anda, serta mengungkap lonjakan yang tidak terduga dalam traffic.

  • Bagaimana distribusi status untuk permintaan pengguna akhir?
    Anda dapat melihat status untuk setiap permintaan dan bahkan mendiagnosis permintaan yang menerima error. Anda dapat memfilter log menurut Critical, Error, atau Warning.

  • Berapa lama waktu yang dibutuhkan situs Anda untuk merespons permintaan?
    Anda dapat melihat latensi situs untuk setiap permintaan menggunakan nilai latency yang dicatat di setiap log.

  • Apakah situs Anda memanfaatkan penyimpanan konten ke dalam cache?
    Setiap log berisi kolom cacheHit untuk memberi tahu Anda apakah resource situs disalurkan dengan cepat dari cache CDN Hosting, atau apakah harus melakukan perjalanan penuh ke backend Hosting. Dengan begitu, Anda dapat meningkatkan performa situs dengan memaksimalkan CDN global Firebase. Misalnya, Anda dapat menggunakan data untuk mengatur kebiasaan penyimpanan aset statis dan konten dinamis ke dalam cache.

  • Bagaimana distribusi traffic ke berbagai domain Anda?
    Jika memiliki beberapa domain atau situs Hosting, Anda dapat memfilter log menurut domain atau situs. Hal ini memungkinkan Anda untuk melihat cara traffic didistribusikan. Saat memfilter menurut domain, Anda dapat melacak domain mana yang paling sering dikunjungi.

Memfilter log dengan kueri

Untuk mempelajari cara memfilter log dengan kueri, buka Contoh kueri menggunakan Logs Viewer dan Mem-build kueri log. Tabel di bawah ini menjelaskan kolom yang tersedia untuk kueri tersebut.

Untuk Hosting, berikut beberapa filter awal untuk kueri:

  • Resource (resource.type) — firebase_domain (Domain Situs Firebase Hosting)
  • Log name (logName) — webrequests (Firebase Hosting)

Setiap entri log memiliki struktur yang telah ditentukan dan kolom yang dapat dikueri (lihat LogEntry). Untuk Hosting, beberapa kolom merupakan standar untuk permintaan HTTP, tetapi ada nilai kolom lain yang berasal dari pemrosesan yang dijalankan oleh Hosting di setiap permintaan.

Kolom Deskripsi
Firebase Hosting menyimpan kolom berikut di objek httpRequest entri log.
Kolom ini ditentukan dalam spesifikasi HTTP.
cacheHit Apakah CDN Hosting memiliki resource respons dalam cache atau tidak
latency Durasi permintaan, dalam detik dengan akhiran s (misalnya, 1.256s)
protocol Protokol yang digunakan untuk permintaan (misalnya, HTTP/1.1, HTTP/2, websocket)
referer Alamat halaman web sebelumnya yang diikuti oleh link ke halaman yang diminta saat ini (jika ada)
remoteIp IP klien asal untuk permintaan
requestMethod Metode permintaan (GET, POST, PUT, dll.)
requestSize Ukuran permintaan dalam byte
requestUrl URL lengkap permintaan (misalnya,
https://foo.web.app/bar atau https://custom.domain.com?query=param)
responseSize Ukuran respons HTTP dalam byte
serverIp tidak diisi
status Status respons HTTP (misalnya, 200 atau 404)
userAgent Header user-Agent permintaan
Firebase Hosting menyimpan kolom tambahan di objek jsonPayload entri log.
acceptEncoding (dari permintaan HTTP) Encoding konten mana, biasanya algoritme kompresi, yang didukung klien (misalnya, gzip atau compress)
billable Apakah project Anda ditagih untuk permintaan tersebut atau tidak
customDomain Apakah permintaan dibuat untuk domain kustom atau tidak
hostname Nama host tujuan permintaan
remoteIpCountry Negara asal permintaan
remoteIpCity Kota asal permintaan

Menggunakan metrik berbasis log

Anda dapat melihat dan mem-build metrik berbasis log, lalu menggunakan metrik ini di Cloud Monitoring untuk membuat diagram dan kebijakan pemberitahuan.

  • Manfaatkan metrik sistem yang telah ditentukan yang direkam secara otomatis, seperti jumlah peristiwa logging yang terjadi dalam jangka waktu tertentu.

  • Buat metrik yang ditentukan pengguna untuk project Anda. Anda dapat menghitung jumlah entri log yang cocok dengan kueri tertentu atau melacak nilai tertentu dengan entri log yang cocok. Anda dapat memfilter menggunakan ekspresi reguler.

  • Gunakan Cloud Monitoring untuk mencatat jumlah entri log yang berisi pesan tertentu atau mengekstrak informasi latensi yang dilaporkan dalam entri log. Selanjutnya, Anda dapat menggunakan metrik ini dalam diagram dan kebijakan pemberitahuan.

Firebase Hosting juga menghasilkan metrik logging khusus Hosting berikut. Metrik ini tidak khusus untuk entri log, melainkan untuk situs Hosting tertentu secara keseluruhan.

  • log_bytes: Total byte penggunaan data untuk setiap situs

  • response_count: Jumlah total respons yang ditulis untuk situs

    Metrik ini mencakup kolom status HTTP, sehingga Anda dapat memetakan respons HTTP menurut status (sebagai contoh).

Mengekspor log ke alat Google Cloud lainnya

Anda juga dapat mengekspor log situs ke alat Google Cloud lainnya, seperti Cloud Monitoring atau BigQuery, misalnya:

  • Dengan menggunakan Cloud Monitoring, Anda dapat membuat metrik berbasis log yang dapat digunakan dalam diagram dan kebijakan pemberitahuan.

  • Dengan menggunakan BigQuery, Anda dapat melakukan hal berikut:

    • Menggunakan Data Studio untuk membuat dasbor data Hosting Anda.
    • Menjalankan kueri untuk mendapatkan lebih banyak insight tentang permintaan Anda (ukuran respons rata-rata, cache yang ditemukan vs yang terlewat, dll.).
    • Mempelajari URL mana yang benar-benar diminta pengguna.
    • Menggabungkan data Hosting dengan data Firebase lain yang Anda ekspor ke BigQuery dan membuat kueri untuknya dengan cara baru.