シンプルな予算アラート メールは請求の最新情報を受け取る比較的簡単な方法ですが、よりカスタマイズされたロジックを含む、より高度なアラートを作成したい場合があります。考慮すべき 2 つのアプローチを次に示します。
Cloud Monitoring を使用して、より洗練されたタイムリーなアラートを作成する
請求の Pub/Sub 通知と対応する Cloud Function を使用して、支出の変化に応じたカスタム動作を作成します
これらの手法はどちらもユーザー側でより多くの作業を必要としますが、受信するアラートの種類とその応答方法を正確に制御する機能を提供します。
このページでは、これらの各アプローチの概要を説明します。
Cloud Monitoring でより高度なアラートを作成する
シンプルな予算アラート メールで、全体的な請求額が特定のしきい値に達したときに通知されます。ただし、予算に大きな影響を与える前に、個々のサービスが予想外に増加しているかどうかを知りたい場合もあります。このようなより高度なユースケースについては、Firebase プロジェクトで利用できる Google Cloud ツールである Cloud Monitoring について学習することをお勧めします。
Cloud Monitoring は、いくつかの異なる種類のアラートに役立ちます。
プロジェクトが依存しているリソースが利用できない場合 (Firebase サービスと Google Cloud サービスの両方で利用できますが、AWS などの外部サービスでも利用できます)
Cloud Functions などのサービスの応答に予想以上の時間がかかる場合
Cloud Storage バケット、Realtime Database インスタンス、または Cloud Firestore インスタンスが拒否するリクエストが多すぎる場合 (Firebase セキュリティ ルールが正しくない可能性があることを示しています)。
一部の Firebase プロダクトで使用されるリソースの量が特定のしきい値を超えて増加した場合
通常、Cloud Monitoring で作成されたアラートは、通常 1 日に 1 回送信される単純な予算アラート メールよりも迅速に送信されます。アラートは、SMS メッセージ、Slack チャネル メッセージ、PagerDuty 通知、Webhook などの形式を取ることができます。これらのオプションを使用すると、より実用的なレベルの可視性を備えたアラートを送信できます。
クラウド モニタリングの使用
Cloud Monitoring の使用を開始するには、 Metrics Explorerから始めることをお勧めします。これにより、Firebase/Google Cloud プロジェクト内でカスタム指標のグラフを作成し、その使用状況を視覚化できます。
具体的には、Cloud Firestore、Realtime Database、Cloud Function インスタンスなどのリソースを確認できます。請求に影響するこれらの製品に関する使用情報 (ドキュメントの読み取り数、送信されたバイト数、関数の呼び出し数など) を表示できます。
Metrics Explorer でリソースの使用状況を視覚化することに慣れたら、最も重要な指標に関するアラート ポリシーを作成することをお勧めします。アラート ポリシーの例を次に示します。
30 分間のドキュメント読み取り回数が特定の値を超えた場合
特定のリソース (関数呼び出しなど) の使用量が特定の時間枠で急速に増加しているように見える場合
追加の請求ロジックを作成する
予算アラートは、予算が特定のしきい値に達すると自動的にメールを送信しますが、より洗練されたアラートまたは支出の増加に対するプログラムによる反応については、Google Cloud Pub/Sub メッセージに基づいて追加のカスタム ロジックを設定することを検討してください。
たとえば、アラートを Slack チャネルまたはテキスト メッセージで送信したり、支出レベルに応じてアプリやプロジェクトをプログラムで変更したりできます。
Pub/Sub は、Pub/Sub トピックと呼ばれるチャネルを通じて、他のサービスがメッセージ (通常は JSON データの形式) を非同期で送信できるようにするメッセージ パッシング サービスです。 Cloud Functions などの承認済みサービスをセットアップして、これらのトピックのメッセージをリッスンし、データに適切に対処できます。
請求に関する Pub/Sub 通知は、請求の使用方法が変更されたかどうかにかかわらず、約 20 分ごとに送信され、ステートレスであることに注意してください (つまり、通知の前に何があったかについてのコンテキストを提供しません)。経時的な支出の異常な増加を追跡したり、以前のサイクルと支出を比較したりする場合は、Cloud Firestore や Realtime Database などのデータベースを使用して、その履歴データを自分で管理する必要があります。
Cloud Functions での Pub/Sub トピックの使用
請求データの Pub/Sub トピックを設定するには、Google Cloud Console で Firebase プロジェクトに関連付けられた予算にアクセスし ([請求] > [予算とアラート] の下)、[ Pub/Sub トピックをこの予算に接続する] のチェックボックスをクリックします。 .これにより、後でリッスンできる Pub/Sub トピックが作成されます。詳細な手順については、完全なドキュメントを参照してください。
Pub/Sub 課金トピックを作成したら、Cloud Function を記述してこのトピックをリッスンし、それに応じてデータを操作できます。データは JSON データとして送信され、これまでに費やした金額、予算額、現在の請求サイクルの開始日などの役立つ情報が含まれています。
Google Cloud のドキュメントには、Cloud Function を使用してこのデータを受信する方法の詳細が記載されています。ただし、Cloud Functions for Firebase を使用して関数をデプロイする場合、一般的なプロセスはもう少し単純になります ( Firebase のドキュメントを参照してください)。プロセスのサンプル ウォークスルーについては、このビデオを参照することもできます。
このデータを受け取ったら、さまざまな方法で対応できます。以下にいくつかのオプションを示します。
Slack チャネル、Discord チャネルにアラートを送信するか、支出が特定のしきい値に達したときにテキスト メッセージを送信します。
過去のデータと比較して支出を分析し、何か異常があれば警告する
請求レベルが高くなりすぎた場合に、Remote Config を介してアプリを変更する
アカウントから課金サービスをプログラムで削除して、Firebase プロジェクトを完全に無効にする