Google I/O 2022 で発表された Firebase の最新情報をご覧ください。詳細

高度な請求アラートとロジックを設定する

単純な予算アラートメールは請求の更新を受信する比較的簡単な方法ですが、よりカスタマイズされたロジックを含むより高度なアラートを作成したい場合があります。考慮すべき2つのアプローチは次のとおりです。

  • Cloud Monitoringを使用して、より洗練されたタイムリーなアラートを作成します

  • 課金Pub / Sub通知と対応するクラウド機能を使用して、支出の変化に応じてカスタム動作を作成します

これらの手法はどちらもあなたの側でより多くの作業を必要としますが、受信するアラートの種類とそれらへの応答方法を正確に制御する能力を提供します。

このページでは、これらの各アプローチの概要を説明します。

CloudMonitoringを使用してより高度なアラートを作成する

シンプルな予算アラートメールは、全体的な請求額が特定のしきい値に達したときに通知します。ただし、個々のサービスが予想外に増加しているかどうかを知りたい場合もあります。予算に大きな影響を与える前に。このようなより洗練されたユースケースについては、Firebaseプロジェクトで利用できるGoogleCloudツールであるCloudMonitoringについて学習することをお勧めします。

Cloud Monitoringは、いくつかの異なるタイプのアラートに役立ちます。

  • プロジェクトが依存しているリソースが利用できない場合(FirebaseとGoogle Cloudサービスの両方で、ただしAWSなどの外部サービスでも)

  • CloudFunctionsなどのサービスの応答に予想よりも時間がかかっている場合

  • Cloud Storageバケット、Realtime Databaseインスタンス、またはCloud Firestoreインスタンスが拒否するリクエストが多すぎる場合(Firebaseセキュリティルールが正しくない可能性があることを示しています)。

  • 一部のFirebase製品で使用されているリソースの量が特定のしきい値を超えて増加した場合

クラウドモニタリングを通じて作成されたアラートは、通常、1日に1回送信される単純な予算アラートメールよりも迅速に送信されます。アラートは、SMSメッセージ、Slackチャネルメッセージ、PagerDuty通知、Webhookなどの形式をとることができます。これらのオプションを使用すると、より高い、より実用的なレベルの可視性でアラートを送信できます。

クラウドモニタリングの使用

Cloud Monitoringの使用を開始するには、メトリクスエクスプローラーから始めることをお勧めします。これにより、Firebase / Google Cloudプロジェクト内でカスタムメトリクスのグラフを作成し、それらの使用状況を視覚化できます。

具体的には、Cloud Firestore、Realtime Database、CloudFunctionインスタンスなどのリソースを確認できます。請求に影響を与える可能性のあるこれらの製品に関する使用情報(ドキュメントの読み取り数、送信されたバイト数、関数の呼び出しなど)を表示できます。

メトリックエクスプローラーでリソースの使用状況を視覚化することに慣れたら、最も関心のあるメトリックにアラートポリシーを作成することをお勧めします。アラートポリシーの例を次に示します。

  • 30分間に読み取られたドキュメントの数が特定の値よりも多い場合

  • 特定のリソース(関数の呼び出しなど)の使用量が特定の時間枠で急速に増加しているように見える場合

追加の課金ロジックを作成する

予算アラートは、予算が特定のしきい値に達すると自動的にメールを送信しますが、支出の増加に対するより高度なアラートまたはプログラムによる反応については、Google Cloud Pub / Subメッセージに基づいて追加のカスタムロジックを設定することを検討してください。

たとえば、Slackチャネルにアラートを送信したり、テキストメッセージを介してアラートを送信したり、支出レベルに応じてアプリやプロジェクトにプログラムによる変更を加えたりすることができます。

Pub / Subは、他のサービスがPub / Subトピックと呼ばれるチャネルを介して非同期的にメッセージ(通常はJSONデータの形式)を送信できるようにするメッセージパッシングサービスです。これらのトピックのメッセージをリッスンし、データを適切に処理するために、CloudFunctionsなどの承認されたサービスを設定できます。

請求のPub / Sub通知は、請求の使用法が変更されたかどうかに関係なく、約20分に1回送信され、ステートレスであることに注意してください(つまり、前に何があったかについてのコンテキストは提供されません)。時間の経過に伴う支出の異常な増加を追跡したり、支出を前のサイクルと比較したりする場合は、CloudFirestoreやRealtimeDatabaseなどのデータベースを使用してその履歴データを自分で管理する必要があります。

CloudFunctionsでのPub / Subトピックの使用

Google Cloud ConsoleでFirebaseプロジェクトに関連付けられている予算にアクセスし([ Billing ]> [ Budgets and alerts ]の下)、[ Connect a Pub / Subトピック]のチェックボックスをクリックして、請求データのPub / Subトピックを設定できます。 。これにより、後で聞くことができるPub / Subトピックが作成されます。詳細な手順については、完全なドキュメントを参照してください。

Pub / Sub課金トピックを作成したら、このトピックをリッスンし、それに応じてデータを処理するクラウド関数を作成できます。データはJSONデータとして送信され、これまでに費やした金額、予算額、現在の請求サイクルの開始日などの役立つ情報が含まれています。

Google Cloudのドキュメントには、CloudFunctionを使用してこのデータを受信する方法の詳細が記載されています。ただし、Cloud Functions for Firebaseを使用して関数をデプロイしている場合、一般的なプロセスは少し簡単です( Firebaseのドキュメントを確認してください)。プロセスのサンプルウォークスルーについては、このビデオを参照することもできます。

このデータを受け取ったら、それに対応するためのさまざまな方法があります。ここにいくつかのオプションがあります: