Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Profil Basis Data Anda

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Ukur performa Firebase Realtime Database Anda dengan alat profiler database, yang ada di dalam Firebase CLI . Alat profiler mencatat semua aktivitas di database Anda selama periode waktu tertentu, lalu membuat laporan terperinci. Gunakan laporan terperinci untuk memecahkan masalah dengan kinerja database Anda, menemukan area masalah, dan mengurangi kueri yang tidak diindeks.

Buat profil

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

  2. Mulai membuat profil database Anda dengan perintah berikut:

    firebase database:profile
    Profiler menampilkan pesan status saat merekam operasi dari database Anda dan membuat profil.

  3. Tekan Enter untuk melengkapi profil dan menampilkan hasilnya.

Tafsirkan hasil Anda

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

Kecepatan

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

Laporan Kecepatan mencakup properti berikut:

  • Jalur: Jalur di database Anda tempat operasi terjadi. Jika ada lebih dari 25 node anak, alat profiler akan menciutkannya menjadi jalur induk dan menambahkan penanda $wildcard . Anda mungkin melihat direktori root database Anda dalam laporan, diwakili oleh garis miring / .
  • Hitung: Jumlah operasi yang terjadi pada jalur yang diberikan.
  • Kecepatan Eksekusi Rata-Rata: Waktu rata-rata yang dibutuhkan server untuk mengeksekusi logika bisnis yang diperlukan untuk menangani jenis operasi tertentu di jalur itu. Interval waktu yang diukur di sini dimulai setelah itu diukur dengan "Rata-rata Waktu Menunggu" yang dijelaskan di bawah.
  • Waktu Menunggu Rata-Rata: Rata-rata waktu yang dihabiskan permintaan dalam antrian sebelum dieksekusi. Penundaan ini umum untuk semua permintaan yang dimulai oleh klien. Total latensi permintaan sisi server kira-kira merupakan jumlah waktu tertunda dan kecepatan eksekusi permintaan tersebut.
  • Izin Ditolak: Jumlah operasi di jalur tertentu yang diblokir oleh Aturan Database Firebase di database Anda.
Laporan Kecepatan berdasarkan Jenis Operasi
Baca Kecepatan Eksekusi Waktu respons server untuk permintaan klien untuk membaca data dari database. Waktu eksekusi baca umumnya diskalakan dengan jumlah data yang sedang dibaca, tetapi bahkan beberapa pembacaan kecil mungkin juga tertunda oleh cache prefetching.
Tulis Kecepatan Eksekusi Waktu respons server untuk permintaan klien untuk menulis data ke database. Tulis skala waktu eksekusi dengan jumlah data yang ditulis.
Hubungkan Kecepatan Eksekusi Waktu respons server untuk permintaan yang dibuat ke klien basis data. Latensi untuk permintaan koneksi didominasi oleh pembukuan sisi server dalam memori yang terkait dengan manajemen koneksi.
Kecepatan Eksekusi Siaran

Jumlah waktu yang dibutuhkan server untuk mendistribusikan data ke klien yang mendengarkan jalur yang diberikan untuk pembaruan waktu nyata.

Properti Hitung dalam Laporan Kecepatan Siaran menggabungkan jumlah siaran yang terjadi, bukan jumlah klien yang menerima informasi. Misalnya, jika 10 klien mendengarkan pada jalur tertentu, dan server menyiarkan pembaruan ke 10 klien, jumlah siaran hanya mencerminkan 1 siaran, meskipun 10 klien menerima data.

Properti Izin Ditolak tidak disertakan dalam laporan Kecepatan Siaran.

Bandwidth

Laporan Bandwidth memberikan wawasan tentang berapa banyak data yang dikonsumsi database Anda di seluruh operasi masuk dan keluar. Namun, Anda tidak boleh menggunakan Laporan Bandwidth untuk memperkirakan penagihan, karena tidak menyertakan bandwidth yang digunakan untuk operasi lain, seperti membuat profil database Anda. Laporan Bandwidth secara kasar memperkirakan ukuran muatan data yang dikonsumsi oleh operasi baca, tulis, dan siaran ke dan dari database Anda. Ini adalah alat yang mengukur kinerja, bukan alat yang memperkirakan penagihan.

Laporan Bandwidth mencakup properti berikut:

  • Jalur: Jalur di database Anda tempat operasi terjadi. Jika ada lebih dari 25 node anak, alat profiler akan menciutkannya menjadi jalur induk.

  • Total: Total byte keluar atau masuk yang digunakan di semua operasi di jalur yang diberikan.

  • Hitung: Jumlah operasi yang terjadi pada jalur yang diberikan.

  • Rata- rata: Jumlah rata-rata byte yang diunduh atau diunggah di seluruh operasi pada jalur yang diberikan (byte/tulis atau byte/baca).

Laporan Bandwidth
Byte yang Diunduh Data yang dikonsumsi melalui operasi baca dan siaran yang dikirim melalui SDK klien dan REST API.
Byte yang Diunggah Data dikonsumsi melalui permintaan tulis yang masuk ke server database. Penghapusan muncul sebagai penulisan dengan 0 byte di bawah masuk.

Kueri Tidak Terindeks

Kueri yang tidak diindeks bisa mahal, karena klien mengunduh semua data di suatu lokasi dan kemudian melakukan kueri di sana. Ini menggunakan lebih banyak bandwidth daripada yang diperlukan. Selesaikan sebanyak mungkin kueri yang tidak diindeks untuk mengoptimalkan kinerja database Anda.

Laporan Kueri Tidak Terindeks menampilkan properti berikut:

  • Jalur: Jalur di database Anda tempat kueri yang tidak diindeks terjadi.
  • Indeks: Aturan yang harus Anda tambahkan untuk menyelesaikan kueri yang tidak diindeks. Pelajari lebih lanjut tentang pengindeksan di Mengindeks data Anda .
  • Hitungan: Jumlah kueri yang tidak diindeks yang terjadi di jalur yang diberikan.

Pembuatan profil tingkat lanjut

Untuk melihat semua operasi yang ditangani database Anda, gunakan flag --raw saat Anda membuat profil database Anda, sebagai berikut:

firebase database:profile --raw

Output 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 .

Alat profiler: Bukan alat penagihan

Jangan gunakan alat profiler untuk memperkirakan biaya bandwidth. Alat profiler dimaksudkan untuk memberi Anda gambaran keseluruhan tentang kinerja database Anda, untuk membantu Anda memantau operasi dan memecahkan masalah, bukan untuk memperkirakan penagihan. Itu tidak memperhitungkan lalu lintas jaringan, itu hanya mencatat perkiraan data aplikasi yang dikirim sebagai tanggapan.

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

  • Overhead protokol: Beberapa lalu lintas tambahan antara server dan klien diperlukan untuk membuat dan memelihara sesi. Bergantung pada protokol yang mendasarinya, lalu lintas ini mungkin mencakup: overhead protokol realtime Firebase Realtime Database, overhead WebSocket, dan overhead header HTTP. Setiap kali koneksi dibuat, overhead ini, dikombinasikan dengan overhead enkripsi SSL apa pun, berkontribusi pada biaya koneksi. Meskipun ini biasanya bukan jumlah bandwidth yang besar, ini bisa menjadi substansial jika muatan Anda kecil atau Anda sering membuat koneksi pendek.
  • Overhead enkripsi SSL: Ada biaya yang terkait dengan overhead enkripsi SSL yang diperlukan untuk koneksi aman. Rata-rata, biaya ini sekitar 3,5 KB untuk jabat tangan awal, dan sekitar 40 miliar untuk header catatan TLS pada setiap pesan keluar. Untuk sebagian besar aplikasi, ini adalah persentase kecil dari tagihan Anda. Namun, ini bisa menjadi persentase yang besar jika kasus spesifik Anda membutuhkan banyak handshake SSL. Misalnya, perangkat yang tidak mendukung tiket sesi TLS mungkin memerlukan jabat tangan koneksi SSL dalam jumlah besar.

Baca lebih lanjut tentang memahami dan memperkirakan tagihan Anda .