Memahami pemantauan performa di Firestore dalam mode Datastore

Cloud Monitoring mengumpulkan metrik, peristiwa, dan metadata dari produk Google Cloud. 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 dalam mode Datastore 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:
  • document/delete_ops_count
  • document/read_ops_count
  • document/write_ops_count
datastore_request Jenis resource untuk memantau project Datastore dan tidak memberikan perincian untuk database.

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 mengetahui daftar lengkap metrik Firestore dalam mode Datastore, lihat Firestore dalam metrik Datastore.

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.

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.

api/request_count yang menampilkan kode 2xx.
Gambar 1. metrik api/request_count (klik untuk memperbesar).

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.

api/request_count yang menampilkan kode 2xx.
Gambar 2. Metrik api/request_count yang menampilkan kode 2xx (klik untuk memperbesar).

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.

Gunakan metrik runtime layanan berikut untuk memantau database Anda.

api/request_count pada jenis resource datastore_request

Metrik api/request_count juga tersedia dalam jenis resource datastore_request dengan pengelompokan api_method dan response_code. Sebagai gantinya, gunakan metrik ini untuk memanfaatkan periode pengambilan sampel yang lebih akurat, sehingga membantu mengidentifikasi lonjakan.

metrik api/request_count pada resource datastore_request
Gambar 3. metrik api/request_count pada resource datastore_request (klik untuk memperbesar).
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_latencies untuk menghitung distribusi latensi
Gambar 4. api/request_latencies untuk menghitung distribusi latensi.
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.

metrik api/request_sizes dan api/response_sizes
Gambar 5. metrik api/request_sizes dan api/response_sizes (klik untuk memperbesar).

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.

Metrik operasi entitas

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 entity memberikan pengambilan sampel yang lebih terperinci, tetapi tidak begitu terperinci.

Misalnya, metrik operasi entity menggunakan resource yang dipantau datastore_request, sehingga tidak ada perincian layanan atau metode.

  • entity/read_sizes: Distribusi ukuran entity yang telah dibaca, yang dikelompokkan menurut jenis.
  • entity/write_sizes: Distribusi ukuran entity tertulis, yang dikelompokkan berdasarkan operasi.

Metrik indeks

Kecepatan penulisan indeks dapat dibandingkan dengan metrik document/write_ops_count untuk memahami rasio fanout indeks.

  • index/write_count: Jumlah penulisan indeks.
tingkat penulisan indeks kontras dengan kecepatan penulisan dokumen
Gambar 7. Kecepatan penulisan indeks dibandingkan dengan kecepatan penulisan dokumen (klik untuk memperbesar).

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.

Metrik TTL

Metrik TTL tersedia untuk Firestore Native dan Firestore dalam database mode Datastore. Gunakan metrik ini untuk memantau efek kebijakan TTL yang diterapkan.

  • entity/ttl_deletion_count: Jumlah total entitas yang dihapus oleh layanan TTL.
  • entity/ttl_expiration_to_deletion_delays: Waktu yang berlalu antara saat masa berlaku entity dengan TTL berakhir, hingga saat entity tersebut benar-benar dihapus.

    Jika Anda melihat bahwa penundaan penghapusan TTL memerlukan waktu lebih dari 24 jam, hubungi dukungan.

Langkah berikutnya