Memahami pemantauan performa di Firestore
Cloud Monitoring mengumpulkan metrik, peristiwa, dan metadata dari Google Cloud produk. Data yang dilaporkan di dasbor Penggunaan dan penggunaan aturan keamanan juga dapat diakses melalui Cloud Monitoring untuk analisis yang lebih mendetail. Dengan Cloud Monitoring, Anda juga dapat menyiapkan dasbor kustom dan notifikasi penggunaan.
Dokumen ini memandu Anda menggunakan metrik, mempelajari dasbor metrik kustom, dan menetapkan pemberitahuan.
Resource yang Dimonitor
Resource yang dimonitor di Cloud Monitoring menampilkan entitas logis atau fisik, seperti virtual machine, database, atau aplikasi. Resource yang dimonitor berisi serangkaian metrik unik yang dapat dijelajahi, dilaporkan melalui dasbor, atau digunakan untuk membuat pemberitahuan. Setiap resource juga memiliki serangkaian label resource, yang merupakan key-value pair yang menyimpan informasi tambahan tentang resource. Label resource tersedia untuk semua metrik yang terkait dengan resource.
Dengan menggunakan Cloud Monitoring API, performa Firestore dipantau dengan resource berikut:
| Resource | Deskripsi | Mode database yang didukung |
firestore.googleapis.com/Database (direkomendasikan) | Jenis resource yang dimonitor yang memberikan perincian untuk project,
location* , dan database_id . Label
database_id akan menjadi (default) untuk database yang dibuat
tanpa nama tertentu. |
Berlaku untuk kedua mode. |
firestore_instance | Jenis resource yang dimonitor untuk project Firestore dan tidak memberikan perincian untuk database. | Berlaku untuk Firestore dalam mode Native |
datastore_request | Jenis resource yang dimonitor untuk project Datastore dan tidak memberikan perincian untuk database. | Berlaku untuk kedua mode. |
Metrik
Firestore tersedia dalam dua mode yang berbeda, Firestore dalam mode Native dan Firestore dalam mode Datastore. Untuk perbandingan fitur antara kedua mode ini, lihat Memilih antara mode database modes.
Untuk daftar lengkap metrik untuk kedua mode, lihat link berikut:
Metrik service runtime
Metrik serviceruntime
memberikan ringkasan umum tentang traffic project. Metrik ini
tersedia untuk sebagian besar Google Cloud API. Jenis resource yang dimonitor
consumed_api
berisi metrik umum ini. Metrik ini diambil sampelnya
setiap 30 menit sehingga data menjadi halus.
Label resource yang penting untuk metrik serviceruntime adalah method. Label ini mewakili metode RPC dasar yang dipanggil. Metode SDK yang Anda panggil mungkin tidak harus memiliki nama yang sama dengan metode RPC dasar. Hal ini karena SDK menyediakan abstraksi API tingkat tinggi. Namun, saat mencoba memahami cara aplikasi Anda berinteraksi dengan Firestore, penting untuk memahami metrik berdasarkan nama metode RPC.
Jika Anda perlu mengetahui metode RPC dasar untuk metode SDK tertentu, lihat dokumentasi API.
Gunakan metrik service runtime berikut untuk memantau database Anda.
api/request_count
Metrik ini memberikan jumlah permintaan yang telah diselesaikan, di seluruh protokol(protokol permintaan, seperti http, gRPC, dll.),
kode respons (kode respons HTTP), response_code_class (class kode respons, seperti 2xx, 4xx,dll.), dan grpc_status_code (kode respons gRPC numerik). Gunakan metrik ini untuk mengamati permintaan API secara keseluruhan dan menghitung rasio error.
Pada gambar 1, permintaan yang menampilkan kode 2xx yang dikelompokkan menurut layanan dan metode dapat dilihat. Kode 2xx adalah kode status HTTP yang menunjukkan bahwa permintaan berhasil.
Pada gambar 2, commit yang dikelompokkan menurut response_code dapat dilihat. Dalam contoh ini, kita hanya melihat respons HTTP 200 yang menunjukkan bahwa database dalam kondisi baik.
api/request_latencies
Metrik api/request_latencies memberikan distribusi latensi di semua permintaan yang telah diselesaikan.
Firestore mencatat metrik dari komponen Layanan Firestore. Metrik latensi mencakup waktu saat Firestore menerima permintaan hingga waktu saat Firestore selesai mengirim respons, termasuk interaksi dengan lapisan penyimpanan. Oleh karena itu, latensi dua arah (rtt) antara klien dan layanan Firestore tidak disertakan dalam metrik ini.
api/request_sizes dan api/response_sizes
Metrik api/request_sizes dan api/response_sizes masing-masing memberikan insight tentang ukuran payload (dalam byte). Metrik ini dapat berguna untuk memahami beban kerja tulis yang mengirimkan data dalam jumlah besar atau kueri yang terlalu luas, dan menampilkan payload besar.
Pada gambar 5, heatmap untuk ukuran respons untuk metode RunQuery dapat dilihat.
Kita dapat melihat bahwa ukurannya stabil, median 50 byte, dan secara keseluruhan antara 10 byte dan 100 byte. Perhatikan bahwa ukuran payload selalu diukur dalam byte yang tidak dikompresi, tidak termasuk overhead kontrol transmisi.
Metrik operasi dokumen
Firestore memberikan jumlah baca, tulis, dan hapus. Metrik tulis memberikan perincian antara operasi 'CREATE' dan 'UPDATE'. Metrik ini selaras dengan operasi CRUD.
Metrik berikut dapat digunakan untuk memahami apakah database Anda lebih banyak melakukan operasi baca atau tulis, dan rasio dokumen baru versus dokumen yang dihapus.
document/delete_ops_count: Jumlah dokumen yang berhasil dihapus.document/read_ops_count: Jumlah dokumen yang berhasil dibaca dari kueri atau pencarian.document/write_ops_count: Jumlah dokumen yang berhasil ditulis.
Pada gambar 6, Anda dapat melihat cara membuat rasio yang menunjukkan rasio dokumen yang dibaca vs. dokumen yang ditulis. Dalam contoh ini, jumlah dokumen yang dibaca sekitar 6% lebih banyak daripada jumlah dokumen yang ditulis.
Metrik ukuran payload
Metrik ini memberikan distribusi dalam byte ukuran payload untuk pembacaan (pencarian dan kueri) dan penulisan ke database Firestore. Nilai ini mewakili ukuran total payload. Misalnya, hasil apa pun yang ditampilkan oleh kueri.
Metrik ini mirip dengan metrik api/request_sizes dan api/response_sizes dengan perbedaan utama adalah metrik operasi dokumen memberikan pengambilan sampel yang lebih terperinci, tetapi perincian yang kurang terperinci.
Misalnya, metrik operasi dokumen menggunakan resource yang dimonitor datastore_request sehingga tidak ada perincian layanan atau metode.
entity/read_sizes: Distribusi ukuran dokumen yang telah dibaca.entity/write_sizes: Distribusi ukuran dokumen yang ditulis.
Metrik penagihan (Edisi Enterprise)
Metrik penagihan berikut hanya tersedia untuk edisi Firestore Enterprise.
Gunakan metrik ini untuk memahami penggunaan penagihan. Metrik ini tidak mencakup penagihan dari operasi administrator (pengindeksan, impor, ekspor, dan penghapusan massal).
api/billable_read_units: Jumlah unit baca yang dapat ditagih. Penggunaannya dapat dikelompokkan berdasarkan nama layanan dan metode API.api/billable_realtime_read_units: Jumlah unit pembaruan real-time yang dapat ditagih dari pembaruan real-time.api/billable_write_units: Jumlah unit tulis yang dapat ditagih. Penggunaannya dapat dikelompokkan berdasarkan nama layanan dan metode API.document/billable_managed_delete_write_units: Jumlah unit tulis yang dapat ditagih dari layanan penghapusan terkelola seperti TTL.
Metrik indeks
Kecepatan penulisan indeks dapat dibandingkan dengan metrik document/write_ops_count
untuk memahami rasio fanout indeks.
index/write_count: Jumlah penulisan indeks.
Pada gambar 7, Anda dapat melihat bagaimana kecepatan penulisan indeks dapat dibandingkan dengan kecepatan penulisan dokumen. Dalam contoh ini, untuk setiap penulisan dokumen, ada sekitar 6 penulisan indeks, yang merupakan rasio fanout indeks yang relatif kecil.
Klien yang terhubung langsung ke database menggunakan Firebase SDK
Dua metrik pengukur tersedia untuk melacak aktivitas dari klien yang terhubung langsung ke database Firestore melalui Mobile SDK, Web SDK, atau keduanya. Metrik ini mencakup fungsi yang terkait dengan pemroses snapshot real-time yang perubahan relevan dalam database langsung di-streaming kembali ke klien.
network/active_connections: Jumlah koneksi aktif pada waktu tertentu. Setiap klien web atau seluler memiliki satu koneksi.network/snapshot_listeners: Jumlah pemroses snapshot yang saat ini terdaftar di semua klien yang terhubung. Mungkin ada beberapa koneksi per klien.
Anda dapat melihat metrik ini di tab Usage dalam database Firestore di Firebase console.
Metrik TTL
Metrik TTL tersedia untuk database Firestore dalam mode Native dan Firestore dalam mode Datastore. Gunakan metrik ini untuk memantau efek kebijakan TTL yang diterapkan.
document/ttl_deletion_count: Jumlah total dokumen yang dihapus oleh layanan TTL.
Pada gambar 9, Anda dapat melihat kecepatan dokumen yang dihapus setiap menit selama beberapa hari.
document/ttl_expiration_to_deletion_delays: Waktu yang berlalu antara saat dokumen dengan TTL habis masa berlakunya hingga saat dokumen benar-benar dihapus.
Pada gambar 10, Anda dapat melihat bahwa metrik ini memberikan distribusi waktu dalam hitungan detik yang diperlukan Firestore untuk menghapus dokumen dengan kebijakan TTL. Di persentil ke-99, diperlukan waktu kurang dari 0,5 detik untuk menghapus dokumen yang masa berlakunya habis karena TTL. Hal ini menunjukkan bahwa sistem berfungsi normal. Firestore biasanya menghapus dokumen yang masa berlakunya habis dalam waktu 24 jam, tetapi hal ini tidak dijamin. Jika Anda melihatnya memerlukan waktu lebih dari 24 jam, hubungi dukungan.
Langkah berikutnya
- Pelajari cara menggunakan dasbor Cloud Monitoring untuk melihat metrik.
- Pantau penggunaan untuk mengidentifikasi pembacaan, penulisan, dan penghapusan dokumen dari waktu ke waktu.