Meskipun email pemberitahuan anggaran sederhana adalah cara yang relatif mudah untuk menerima informasi terkait penagihan, terkadang Anda ingin membuat pemberitahuan yang lebih mendetail dengan logika yang lebih disesuaikan. Berikut adalah dua pendekatan yang perlu dipertimbangkan:
Menggunakan Cloud Monitoring untuk membuat pemberitahuan yang lebih mendetail dan tepat waktu
Menggunakan notifikasi Pub/Sub penagihan beserta Cloud Function yang sesuai untuk membuat perilaku kustom sebagai respons terhadap perubahan pengeluaran Anda
Meskipun melibatkan lebih banyak pekerjaan bagi Anda, kedua teknik ini memungkinkan Anda mengontrol jenis pemberitahuan yang diterima dan cara meresponsnya.
Halaman ini menyediakan ringkasan untuk tiap-tiap pendekatan tersebut.
Membuat pemberitahuan yang lebih mendetail dengan Cloud Monitoring
Email pemberitahuan anggaran sederhana memberi tahu Anda saat keseluruhan penagihan telah mencapai batas tertentu. Namun, Anda mungkin juga ingin mengetahui apakah ada layanan tertentu yang meningkat secara tak terduga sebelum layanan tersebut dapat berpengaruh besar terhadap anggaran Anda. Untuk kasus penggunaan yang lebih mendetail seperti ini, sebaiknya pelajari Cloud Monitoring, sebuah alat Google Cloud yang tersedia untuk project Firebase Anda.
Cloud Monitoring berguna untuk beberapa jenis pemberitahuan:
Jika resource yang menjadi dependensi project tidak tersedia (untuk layanan Firebase dan Google Cloud, bahkan untuk layanan eksternal seperti AWS)
Jika layanan seperti Cloud Functions memerlukan waktu respons lebih lama dari yang diperkirakan
Jika bucket Cloud Storage, instance Realtime Database, atau instance Cloud Firestore menolak terlalu banyak permintaan (indikasi bahwa Aturan Keamanan Firebase mungkin salah).
Jika jumlah resource yang digunakan oleh beberapa produk Firebase Anda telah melebihi batas tertentu
Pemberitahuan yang dibuat melalui Cloud Monitoring biasanya dikirim lebih cepat daripada email pemberitahuan anggaran sederhana, yang biasanya dikirim sekali per hari. Pemberitahuan dapat berupa pesan SMS, pesan saluran Slack, notifikasi PagerDuty, webhook, dan lain-lain. Opsi ini memungkinkan Anda mengirim pemberitahuan dengan tingkat visibilitas lebih tinggi dan lebih mudah ditindaklanjuti.
Menggunakan Cloud Monitoring
Untuk mulai menggunakan Cloud Monitoring, sebaiknya mulai dengan Metrics Explorer, yang memungkinkan Anda membuat grafik metrik kustom dalam project Firebase/Google Cloud dan memvisualisasikan penggunaannya.
Secara khusus, Anda dapat melihat resource seperti instance Cloud Firestore, Realtime Database, atau Cloud Function. Anda dapat melihat informasi penggunaan produk ini (seperti jumlah pembacaan dokumen, byte yang dikirim, atau pemanggilan fungsi) yang akan berpengaruh pada penagihan Anda.
Setelah merasa lebih mahir dalam memvisualisasikan penggunaan resource di Metrics Explorer, sebaiknya buat kebijakan pemberitahuan terkait metrik yang paling penting bagi Anda. Berikut ini beberapa contoh kebijakan pemberitahuan:
Jika jumlah pembacaan dokumen dalam 30 menit melampaui nilai tertentu
Jika penggunaan resource tertentu (seperti pemanggilan fungsi) tampaknya meningkat terlalu cepat dalam jangka waktu tertentu
Membuat logika penagihan tambahan
Pemberitahuan anggaran akan otomatis mengirimkan email saat anggaran Anda mencapai batas tertentu. Namun, untuk mendapatkan pemberitahuan yang lebih mendetail atau reaksi terprogram terhadap peningkatan pengeluaran, Anda dapat menyiapkan logika kustom tambahan berdasarkan pesan Google Cloud Pub/Sub.
Misalnya, Anda dapat mengirim pemberitahuan ke saluran Slack atau melalui pesan teks, atau membuat perubahan terprogram pada aplikasi atau project bergantung pada tingkat pengeluaran.
Pub/Sub adalah layanan penerusan pesan yang memungkinkan layanan lain mengirim pesan, biasanya dalam bentuk data JSON, secara asinkron melalui saluran yang dikenal sebagai topik Pub/Sub. Anda dapat menyiapkan layanan yang diotorisasi, seperti Cloud Functions, untuk memproses pesan dalam topik ini dan menindaklanjuti datanya dengan tepat.
Perhatikan bahwa notifikasi Pub/Sub untuk penagihan dikirim sekitar sekali setiap 20 menit, baik penggunaan penagihan Anda telah berubah maupun tidak, dan bersifat stateless (artinya, tidak memberikan konteks mengenai kondisi sebelumnya). Jika ingin memantau peningkatan pengeluaran yang tidak wajar dari waktu ke waktu, atau membandingkan pengeluaran dengan siklus sebelumnya, Anda harus mengelola sendiri data historis tersebut menggunakan database seperti Cloud Firestore atau Realtime Database.
Menggunakan topik Pub/Sub dengan Cloud Functions
Anda dapat menyiapkan topik Pub/Sub untuk data penagihan. Cukup buka anggaran yang terkait dengan project Firebase Anda di Google Cloud Console (di bagian Billing > Budgets and alerts), lalu klik kotak centang pada Connect a Pub/Sub topic to this budget. Tindakan ini akan membuat topik Pub/Sub yang dapat Anda proses nantinya. Untuk mengetahui langkah-langkah detailnya, lihat dokumentasi lengkap.
Setelah membuat topik penagihan Pub/Sub, Anda dapat menulis Cloud Function untuk memproses topik tersebut dan menindaklanjuti datanya. Data dikirim sebagai data JSON dan berisi informasi berguna, seperti jumlah yang telah Anda keluarkan sejauh ini, jumlah anggaran, dan tanggal mulai siklus penagihan Anda saat ini.
Dokumentasi Google Cloud memiliki detail lengkap mengenai cara menerima data ini menggunakan Cloud Function. Namun, jika Anda menggunakan Cloud Functions for Firebase untuk men-deploy fungsi, proses umumnya menjadi sedikit lebih sederhana (lihat dokumentasi Firebase). Anda juga dapat melihat video ini untuk mengetahui contoh panduan proses tersebut.
Setelah Anda menerima data ini, ada sejumlah cara berbeda untuk meresponsnya. Berikut adalah beberapa opsinya:
Mengirim pemberitahuan ke saluran Slack, saluran Discord, atau mengirim pesan teks saat pengeluaran telah mencapai batas tertentu.
Menganalisis pengeluaran dibandingkan dengan data historis dan memberi tahu Anda jika ada sesuatu yang tampak tidak wajar
Membuat perubahan pada aplikasi melalui Remote Config jika tingkat penagihan terlalu tinggi
Menonaktifkan project Firebase sepenuhnya dengan menghapus layanan penagihan secara terprogram dari akun Anda