Memahami pemantauan performa di Firestore
Cloud Monitoring mengumpulkan metrik, peristiwa, dan metadata dari produk Google Cloud. 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 pemberitahuan penggunaan.
Dokumen ini akan memandu Anda dalam menggunakan metrik, mempelajari dasbor metrik kustom, dan menyetel pemberitahuan.
Resource yang Dipantau
Resource yang dimonitor dalam Cloud Monitoring mewakili entity logis atau fisik, seperti mesin virtual, database, atau aplikasi. Resource yang dipantau 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:
Referensi | 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. | Semua metrik yang didukung untuk kedua mode, kecuali metrik berikut yang tidak didukung untuk Firestore dalam mode Datastore:
|
firestore_instance | Jenis resource memantau untuk project Firestore dan tidak memberikan perincian untuk database. | Berlaku untuk Native Firestore |
datastore_request | Jenis resource untuk memantau project Datastore dan tidak memberikan perincian untuk database. | Berlaku untuk kedua mode. |
Metrik
Firestore tersedia dalam dua mode berbeda, yaitu Firestore Native dan Firestore dalam mode Datastore. Untuk perbandingan fitur antara kedua mode ini, lihat Memilih antara mode database.
Untuk daftar lengkap metrik untuk kedua mode, lihat tautan berikut:
Metrik runtime layanan
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 berikut. Metrik ini diambil sampelnya setiap 30 menit sehingga data dihaluskan.
Label resource yang penting untuk metrik serviceruntime
adalah method
. Label ini
mewakili metode RPC dasar yang dipanggil. Metode SDK yang Anda panggil mungkin
tidak selalu dinamai sama dengan metode RPC yang mendasarinya. Alasannya adalah
SDK menyediakan abstraksi API tingkat tinggi. Namun, saat mencoba memahami cara aplikasi berinteraksi dengan Firestore, penting untuk memahami metrik berdasarkan nama metode RPC.
Jika Anda perlu mengetahui metode RPC yang mendasarinya untuk metode SDK tertentu, lihat dokumentasi API.
Gunakan metrik runtime layanan berikut untuk memantau database Anda.
api/request_count
Metrik ini menunjukkan jumlah permintaan yang selesai, 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 keseluruhan permintaan API dan menghitung tingkat error.
Pada Gambar 1, permintaan yang menampilkan kode 2xx yang dikelompokkan berdasarkan layanan dan metode dapat dilihat. Kode 2xx adalah kode status HTTP yang menunjukkan permintaan berhasil.
Pada Gambar 2, commit yang dikelompokkan menurut response_code
dapat dilihat. Dalam contoh ini, kita hanya melihat respons HTTP 200 yang menyiratkan bahwa database responsif.
api/request_latencies
Metrik api/request_latencies
memberikan distribusi latensi di semua permintaan yang selesai.
Firestore mencatat metrik dari komponen Layanan Firestore. Metrik latensi mencakup waktu saat Firestore menerima permintaan hingga waktu Firestore selesai mengirimkan respons, termasuk interaksi dengan lapisan penyimpanan. Oleh karena itu, latensi bolak-balik (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). Fungsi ini dapat berguna untuk memahami beban kerja tulis yang mengirim data atau kueri dalam jumlah besar yang terlalu luas, dan menampilkan payload yang besar.
Dalam gambar 5, peta panas untuk ukuran respons metode RunQuery
dapat dilihat.
Kita dapat melihat bahwa ukurannya stabil, dengan median 50 byte, dan secara keseluruhan antara 10 byte
dan 100 byte. Perhatikan bahwa ukuran payload selalu diukur dalam byte yang tidak dikompresi, dan tidak termasuk overhead kontrol transmisi.
Mendokumentasikan metrik operasi
Firestore menyediakan jumlah operasi 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 membaca dan menulis data yang berat, serta kecepatan dokumen baru vs. 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 dari jumlah dokumen yang ditulis.
Mendokumentasikan metrik operasi
Metrik ini menyediakan distribusi dalam byte ukuran payload untuk pembacaan (pencarian dan kueri) serta penulisan ke database Firestore. Nilai ini mewakili
total ukuran payload. Misalnya, semua hasil yang ditampilkan oleh kueri.
Metrik ini mirip dengan metrik api/request_sizes
dan api/response_sizes
dengan perbedaan utamanya adalah metrik operasi dokumen memberikan sampling yang lebih terperinci, tetapi tidak begitu terperinci.
Misalnya, metrik operasi dokumen menggunakan resource yang dipantau datastore_request
, sehingga tidak ada perincian layanan atau metode.
entity/read_sizes
: Distribusi ukuran dokumen yang telah dibaca.entity/write_sizes
: Distribusi ukuran dokumen tertulis.
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 perbedaan kecepatan penulisan indeks dengan kecepatan penulisan dokumen. Dalam contoh ini, untuk setiap penulisan dokumen, ada sekitar 6 penulisan indeks, yang merupakan kecepatan 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 tempat perubahan yang relevan dalam database akan segera di-streaming kembali ke klien.
network/active_connections
: Jumlah koneksi yang aktif pada saat itu. 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 Firestore Native dan Firestore dalam database 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 rasio dokumen yang dihapus setiap menit selama periode 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 detik yang diperlukan Firestore untuk menghapus dokumen dengan kebijakan TTL. Perlu waktu kurang dari 0,5 detik untuk menghapus dokumen yang masa berlakunya telah habis pada persentil ke-99. Ini berarti sistem berfungsi secara normal. Firestore biasanya menghapus dokumen yang sudah habis masa berlakunya dalam waktu 24 jam, tetapi hal ini tidak dijamin. Jika Anda merasa perlu 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.