Coba Cloud Firestore: Lihat database yang skalabel dan fleksibel dari Firebase dan Google Cloud Platform. Pelajari Cloud Firestore lebih lanjut.

Membuat Profil Database Anda

Ukur performa Firebase Realtime Database Anda dengan fitur profiler database yang ada di dalam Firebase CLI. Fitur profiler mencatat semua aktivitas di database Anda ke dalam log selama periode waktu tertentu, kemudian menghasilkan laporan terperinci. Gunakan laporan terperinci untuk memecahkan masalah performa database, menemukan area masalah, dan mengurangi kueri yang tidak terindeks.

Membuat profil

  1. Sebelum mulai membuat profil Firebase Realtime Database, pastikan Anda menggunakan Firebase CLI versi terbaru dan telah melakukan inisialisasi untuk database serta project yang ingin Anda buat profilnya. Perhatikan bahwa Anda harus menjadi editor atau pemilik project itu untuk membuat profil.

  2. Mulailah membuat profil database dengan perintah berikut:

    firebase database:profile
    Profiler menampilkan pesan status saat mencatat operasi dari database Anda dan membuat profilnya.

  3. Tekan Enter untuk menyelesaikan profil dan menampilkan hasilnya.

Menginterpretasikan hasil

Fitur profiler menggabungkan data yang dikumpulkan terkait operasi database Anda, dan menampilkan hasilnya dalam tiga kategori utama: kecepatan, bandwidth, serta kueri yang tidak terindeks.

Kecepatan

Laporan Kecepatan mengukur waktu respons server (dalam milidetik) untuk setiap jenis operasi. Namun, kecepatan yang diukur di Laporan Kecepatan mungkin tidak benar-benar mencerminkan kecepatan yang dirasakan pengguna akhir. Berbagai faktor, termasuk kondisi jaringan, dapat menambah latensi di sisi klien.

Laporan Kecepatan meliputi properti berikut:

  • Lokasi: Lokasi di database tempat terjadinya operasi. Jika ada lebih dari 25 node turunan, fitur profiler akan memindahkannya ke lokasi induk dan menambahkan penanda $wildcard. Anda dapat melihat direktori utama database dalam laporan yang ditunjukkan dengan garis miring /.
  • Jumlah: Jumlah operasi yang terjadi di lokasi yang ditetapkan.
  • Rata-rata: Waktu rata-rata yang dibutuhkan server untuk memproses jenis operasi tertentu di lokasi tersebut.
  • Izin Ditolak: Jumlah operasi di lokasi tertentu yang diblokir oleh Aturan Firebase Database pada database Anda.
Laporan Kecepatan berdasarkan Jenis Operasi
Kecepatan Baca Waktu respons server terhadap permintaan klien untuk membaca data dari database.
Kecepatan Tulis Waktu respons server terhadap permintaan klien untuk menulis data ke database.
Kecepatan Siaran

Jumlah waktu yang dibutuhkan server untuk mendistribusikan data ke klien yang mendeteksi lokasi yang ditetapkan untuk update realtime.

Properti Jumlah di Laporan Kecepatan Siaran menggabungkan jumlah siaran yang terjadi, bukan jumlah klien yang menerima informasi tersebut. Misalnya, jika 10 klien mendeteksi di lokasi yang ditetapkan, dan server menyiarkan update ke 10 klien tersebut, jumlah siaran yang terjadi hanya 1 siaran, meskipun ada 10 klien yang menerima data tersebut.

Properti Izin Ditolak tidak disertakan di laporan Kecepatan Siaran.

Bandwidth

Laporan Bandwidth memberikan informasi tentang jumlah data yang digunakan database di seluruh operasi yang masuk dan keluar. Namun, jangan gunakan Laporan Bandwidth untuk memperkirakan penagihan, karena laporan tersebut tidak meliputi bandwidth yang digunakan untuk operasi lain, misalnya pembuatan profil database. Laporan Bandwidth memperkirakan secara kasar ukuran payload data yang digunakan oleh operasi baca, tulis, dan siaran ke dan dari database Anda. Ini adalah fitur untuk mengukur performa, bukan untuk memperkirakan penagihan.

Laporan Bandwidth mencakup properti berikut:

  • Lokasi: Lokasi di database tempat terjadinya operasi. Jika ada lebih dari 25 node turunan, fitur profiler akan memindahkannya ke lokasi induk.

  • Total: Total byte keluar atau masuk yang digunakan di semua operasi di lokasi yang ditetapkan.

  • Jumlah: Jumlah operasi yang terjadi di lokasi yang ditetapkan.

  • Rata-rata: Jumlah rata-rata byte yang didownload atau diupload di seluruh operasi pada lokasi yang ditetapkan (byte/tulis atau byte/baca).

Laporan Bandwidth
Byte yang Didownload Data yang digunakan melalui operasi baca dan siaran yang dikirim melalui REST API dan SDK klien.
Byte yang Diupload Data yang digunakan melalui permintaan tulis yang masuk ke server database. Penghapusan akan muncul sebagai penulisan dengan ukuran 0 byte di dalam operasi masuk.

Kueri yang Tidak Terindeks

Permintaan yang tidak terindeks bisa jadi mahal, karena klien mendownload semua data di lokasi dan kemudian menjalankan kueri. Operasi ini menggunakan bandwidth lebih banyak daripada yang dibutuhkan. Selesaikan sebanyak mungkin kueri yang tidak terindeks untuk mengoptimalkan performa database Anda.

Laporan Kueri yang Tidak Terindeks menampilkan properti berikut:

  • Lokasi: Lokasi di database tempat terjadinya kueri yang tidak terindeks.
  • Indeks: Aturan yang harus Anda tambahkan untuk menyelesaikan kueri yang tidak terindeks. Pelajari lebih lanjut tentang pengindeksan dalam Mengindeks data.
  • Jumlah: Jumlah kueri tidak terindeks yang terjadi di lokasi yang ditetapkan.

Pembuatan profil lanjutan

Untuk melihat semua operasi yang ditangani database Anda, gunakan tanda --raw ketika membuat profil database, seperti yang berikut:

firebase database:profile --raw

Keluaran mentah juga mencakup informasi klien untuk setiap operasi, seperti string userAgent dan alamat IP. Pelajari lebih lanjut tentang berbagai operasi yang diprofilkan di Firebase Realtime Database Anda di Jenis Operasi Firebase Realtime Database.

Fitur profiler: Bukan fitur penagihan

Jangan gunakan fitur profiler untuk memperkirakan biaya bandwidth. Fitur profiler bertujuan untuk memberi Anda gambaran keseluruhan mengenai performa database, untuk membantu Anda memantau operasi dan memecahkan masalah, bukan untuk memperkirakan tagihan. Fitur ini tidak memperhitungkan traffic jaringan, hanya mencatat perkiraan data aplikasi yang dikirim sebagai respons.

Berikut adalah beberapa contoh umum traffic jaringan yang ditagih oleh Firebase, yang tidak tercakup dalam profil database Anda:

  • Overhead protokol: Diperlukan beberapa traffic tambahan antara server dan klien untuk membangun dan memelihara sesi. Tergantung pada protokol yang mendasarinya, traffic ini mungkin mencakup: overhead protokol realtime Firebase Realtime Database, overhead WebSocket, dan overhead header HTTP. Setiap kali koneksi dibuat, overhead ini, yang digabungkan dengan overhead enkripsi SSL, menimbulkan biaya koneksi. Meskipun biasanya bukan bandwidth dalam jumlah besar, biaya ini bisa menjadi signifikan jika payload Anda kecil atau Anda sering membuat koneksi pendek.
  • Overhead enkripsi SSL: Ada biaya yang terkait dengan overhead enkripsi SSL yang diperlukan untuk koneksi yang aman. Rata-rata, biaya yang dikenakan adalah sekitar 3,5 KB untuk handshake awal dan sekitar 40 B untuk header record TLS pada setiap pesan keluar. Untuk sebagian besar aplikasi, biaya ini merupakan persentase kecil dari tagihan. Namun, persentase biaya ini bisa meningkat jika kasus tertentu Anda memerlukan banyak handshake SSL. Misalnya, perangkat yang tidak mendukung tiket sesi TLS mungkin memerlukan handshake koneksi SSL dalam jumlah besar.

Baca lebih lanjut mengenai cara memahami dan memperkirakan tagihan Anda.

Kirim masukan tentang...

Firebase Realtime Database
Butuh bantuan? Kunjungi halaman dukungan kami.