Siapkan lansiran dan logika penagihan lanjutan

Sementara sederhana email anggaran peringatan adalah cara yang relatif mudah untuk menerima update penagihan, mungkin ada saat-saat ketika Anda ingin membuat alert yang lebih canggih yang mencakup logika yang lebih disesuaikan. Berikut adalah dua pendekatan untuk dipertimbangkan:

  • Gunakan Cloud Monitoring untuk membuat peringatan yang lebih canggih dan tepat waktu

  • Gunakan pemberitahuan Pub/Sub penagihan bersama dengan Cloud Function yang sesuai untuk membuat perilaku khusus sebagai respons terhadap perubahan pengeluaran Anda

Meskipun kedua teknik ini membutuhkan lebih banyak upaya dari Anda, keduanya memberi Anda kekuatan untuk mengontrol dengan tepat jenis peringatan apa yang Anda terima dan bagaimana menanggapinya.

Halaman ini menawarkan ikhtisar untuk masing-masing pendekatan ini.

Buat lansiran yang lebih canggih dengan Cloud Monitoring

Email peringatan anggaran sederhana memberi tahu Anda saat keseluruhan penagihan Anda telah mencapai ambang tertentu. Namun, Anda mungkin juga tertarik untuk mengetahui apakah layanan individual meningkat secara tidak terduga -- sebelum layanan tersebut sempat memengaruhi anggaran Anda secara signifikan. Untuk kasus penggunaan yang lebih canggih seperti ini, sebaiknya pelajari Cloud Monitoring, yang merupakan alat Google Cloud yang tersedia untuk proyek Firebase Anda.

Cloud Monitoring berguna untuk beberapa jenis peringatan yang berbeda:

  • Jika sumber daya yang diandalkan proyek Anda tidak tersedia (untuk layanan Firebase dan Google Cloud, tetapi bahkan untuk layanan eksternal, seperti AWS)

  • Jika layanan seperti Cloud Functions membutuhkan waktu lebih lama dari yang diharapkan untuk merespons

  • Jika bucket Cloud Storage, instance Realtime Database, atau instance Cloud Firestore Anda menolak terlalu banyak permintaan (indikasi bahwa Aturan Keamanan Firebase Anda mungkin salah).

  • Jika jumlah sumber daya yang digunakan oleh beberapa produk Firebase Anda telah meningkat di atas ambang batas tertentu

Peringatan yang dibuat melalui Cloud Monitoring biasanya dikirim lebih cepat daripada email peringatan anggaran sederhana, yang biasanya dikirim sekali per hari. Peringatan dapat berupa pesan SMS, pesan saluran Slack, pemberitahuan PagerDuty, webhook, dan banyak lagi. Opsi ini memungkinkan Anda mengirim lansiran dengan tingkat visibilitas yang lebih tinggi dan lebih dapat ditindaklanjuti.

Menggunakan Pemantauan Cloud

Untuk memulai Pemantauan Cloud, kami sarankan mulai dengan Metrik Explorer , yang memungkinkan Anda untuk membuat grafik metrik kustom dalam proyek Firebase / Google Cloud Anda dan memvisualisasikan penggunaan mereka.

Secara khusus, Anda dapat melihat sumber daya seperti instance Cloud Firestore, Realtime Database, atau Cloud Function. Anda dapat melihat informasi penggunaan tentang produk ini (seperti jumlah dokumen yang dibaca, byte yang dikirim, atau pemanggilan fungsi) yang akan berpengaruh pada penagihan Anda.

Setelah Anda merasa nyaman memvisualisasikan penggunaan sumber daya Anda dalam Metrik Explorer, kami sarankan menciptakan kebijakan mengingatkan pada metrik Anda yang terpenting. Berikut adalah beberapa contoh kebijakan peringatan:

  • Jika jumlah dokumen yang dibaca dalam periode waktu 30 menit lebih besar dari nilai tertentu

  • Jika penggunaan sumber daya tertentu (seperti pemanggilan fungsi) tampaknya meningkat terlalu cepat dalam jangka waktu tertentu

Buat logika penagihan tambahan

Lansiran anggaran mengirimkan email secara otomatis saat anggaran Anda mencapai ambang tertentu, tetapi untuk peringatan yang lebih canggih atau reaksi terprogram terhadap peningkatan pengeluaran, Anda dapat mempertimbangkan untuk menyiapkan logika khusus tambahan berdasarkan pesan Google Cloud Pub/Sub.

Misalnya, Anda dapat mengirim peringatan ke saluran Slack atau melalui pesan teks, atau Anda membuat perubahan terprogram pada aplikasi atau proyek Anda bergantung pada tingkat pengeluaran.

Pub/Sub adalah layanan pengiriman pesan yang memungkinkan layanan lain untuk mengirim pesan — biasanya dalam bentuk data JSON — secara asinkron melalui saluran yang dikenal sebagai topik Pub/Sub. Anda dapat menyiapkan layanan resmi, seperti Cloud Functions, untuk mendengarkan pesan dalam topik ini dan bertindak berdasarkan data dengan tepat.

Perhatikan bahwa pemberitahuan Pub/Sub untuk penagihan dikirim sekitar sekali setiap 20 menit terlepas dari apakah penggunaan penagihan Anda telah berubah atau tidak, dan pemberitahuan tersebut tidak memiliki kewarganegaraan (artinya pemberitahuan tersebut tidak memberikan konteks tentang apa yang mendahuluinya). Jika Anda ingin melacak peningkatan pengeluaran yang tidak biasa dari waktu ke waktu, atau membandingkan pengeluaran Anda dengan siklus sebelumnya, Anda perlu mengelola sendiri data historis tersebut menggunakan database seperti Cloud Firestore atau Realtime Database.

Menggunakan topik Pub/Sub dengan Cloud Functions

Anda dapat mengatur Pub / Sub topik untuk data penagihan dengan mengunjungi anggaran yang terkait dengan proyek Firebase Anda di Cloud Console Google (di bawah Penagihan> Anggaran dan alert), kemudian klik kotak centang untuk Connect sebuah Pub / Sub topik untuk anggaran ini . Ini akan membuat topik Pub/Sub yang dapat Anda dengarkan nanti. Untuk langkah-langkah rinci, lihat dokumentasi lengkap .

Setelah Anda membuat topik penagihan Pub/Sub, Anda dapat menulis Cloud Function untuk mendengarkan topik ini dan bertindak berdasarkan data yang sesuai. Data dikirim sebagai data JSON dan mencakup informasi bermanfaat seperti jumlah yang telah Anda belanjakan sejauh ini, jumlah anggaran, dan tanggal mulai siklus penagihan Anda saat ini.

Dokumentasi Google Cloud memiliki detail lengkap tentang cara menerima data ini menggunakan Cloud Function. Namun, jika Anda menggunakan Cloud Fungsi untuk Firebase untuk menyebarkan fungsi Anda, proses umum sedikit lebih sederhana (memeriksa dokumentasi Firebase ). Anda juga dapat merujuk ke video ini untuk panduan sampel dari proses.

Setelah Anda menerima data ini, ada beberapa cara berbeda untuk meresponsnya. Berikut adalah beberapa opsi: