データベース使用状況のモニタリング

Firebase プロジェクトの管理の一環として、Realtime Database のリソースの使用状況(接続ユーザー数、データベースのストレージ使用量など)と請求に対する影響を確認する必要があります。

Realtime Database の課金対象使用量を確認するには、使用量と請求額ダッシュボードを確認します。 課金の詳細については、Realtime Database の課金についてをご覧ください。

リソースの使用状況については、Firebase コンソールの [ 使用状況] タブと で利用可能な指標の両方を使用して、 の使用状況をモニタリングできます。

Firebase アラートを受信する

Realtime Database の使用量がお支払いプランの上限に近づいたときにメール通知アラートを受け取るように選択できます。デフォルトでは、プランの上限に達したときや上限を超えたときに Firebase がメール通知アラートを送信しますが、これらの事前通知を有効にして、プランや使用量を調整し、サービスの中断を回避できます。

これらの Firebase アラートとその設定はプロジェクト全体に適用されます。そのため、デフォルトでは、Realtime Database アラートがトリガーされると、アラートを受信するために必要な権限を持つすべてのプロジェクト メンバーがメールを受け取ります。メールは個々のメールアドレスに送信されます(Google グループや Google Workspace アカウントなどのアカウントのグループには送信されません)。

自分のアカウントのアラートをオンまたはオフにする

自分のアカウントにおける Realtime Database のアラートのオンとオフの切り替えは、他のプロジェクト メンバーに影響を与えずに行うことができます。この切り替えにおいても、アラートを受信するための権限が必要になります。

Realtime Database アラートを有効または無効にする手順は次のとおりです。

  1. Firebase コンソールの右上にある [Firebase アラート] に移動します。
  2. 次に、 [設定] に移動し、Realtime Database アラートのアカウント設定を行います。

Firebase コンソールで使用状況をモニタリングする

現在の Realtime Database の接続数とデータ使用量を確認するには、Firebase コンソールの [使用状況] タブを表示します。このタブでは、現在の請求期間、過去 30 日間、過去 24 時間の使用状況をそれぞれ確認できます。

次の指標に関する使用統計情報が表示されます。

  • 接続: データベースに対して現在開いている同時リアルタイム接続数。WebSocket、ロング ポーリング、HTML サーバー送信イベントといったリアルタイム接続が含まれます。RESTful リクエストは含まれません。
  • ストレージ: データベースに保存されているデータ量。Firebase ホスティングや、その他の Firebase プロダクトを使用して保存したデータは含まれません。
  • ダウンロード: データベースからダウンロードされたすべてのバイト数で、プロトコルや暗号化のオーバーヘッドも含まれます。
  • 読み込み: このグラフは、該当する 1 分の間隔で、データベースがリクエストの処理にどれだけ使用されているかを示します。データベースが 100% に近づくと、パフォーマンスの問題が発生することがあります。

Firebase コンソールの Realtime Database の [ルール] タブ。

Firebase コンソールには Firebase Security Rules 評価ダッシュボードも用意されており、ルールの呼び出しを一目で確認できます。Cloud Monitoring の詳細な分析でこのダッシュボードの情報を補足できます。

詳細については、Cloud Monitoring でセキュリティ ルールをモニタリングするをご覧ください。

Firebase コンソールの Realtime Database の [使用状況] タブ。

Cloud Monitoring で使用状況をモニタリングする

使用状況の指標

Cloud Monitoring を使用して使用料金をモニタリングするには、次の指標を追跡します。すべての指標タイプ名には firebasedatabase.googleapis.com/ という接頭辞が付きます。

指標名 説明
送信ペイロード バイト数

network/sent_payload_bytes_count。この指標は、データベース オペレーション(取得、クエリ、書き込み、リアルタイムのリスナー更新、ブロードキャストなど)によってリクエストされたデータのサイズを反映しています。接続オーバーヘッド(プロトコルまたは暗号化)は含まれません。sent_payload_bytes_count は、送信帯域幅のコストの対象になりますが、料金全体を考慮したものではありません。これは、リクエストに応じてデータベースから送信されたデータの推定値ですが、実際に送信されたデータではなく、リクエストされたデータのペイロード サイズを測定するため、必ずしも正確ではありません。

送信ペイロードとプロトコル バイト数

network/sent_payload_and_protocol_bytes_count。この指標は、前述のペイロード データと、接続に必要なプロトコル オーバーヘッド(HTTP ヘッダー、WebSocket フレーム、Firebase リアルタイム プロトコル フレームなど)の両方のサイズを反映しています。安全な接続の暗号化コストは考慮されていません。

送信バイト数 network/sent_bytes_count。この指標は、データベースからの読み取りで送信されたデータの合計サイズの推定値を反映しています。これには、実際にクライアントに送信されたペイロード データに加えて、接続コストを発生させるプロトコルと暗号化のオーバーヘッドも含まれます。これは、Realtime Database の課金対象となる送信帯域幅の合計を最も正確に反映しています。
合計バイト数

storage/total_bytes。この指標は、データベースに保存しているデータの量をモニタリングするために使用されます。Realtime Database に保存したデータは、料金の計算対象になります。

有用な知見と概要を得るには、ダッシュボードのグラフに表示する指標を組み合わせます。たとえば、次のような組み合わせが考えられます。

  • 送信データ: network/sent_bytes_countnetwork/sent_payload_and_protocol_bytes_countnetwork/sent_payload_bytes_count の各指標を使用して、予想外のコストとして課金されるプロトコルまたは暗号化のオーバーヘッドに関する潜在的な問題を発見できます。リクエストされたデータ ペイロードのサイズと接続オーバーヘッドを反映する他の指標が大きく異なる場合は、タイムアウトや頻繁な接続につながる問題をトラブルシューティングする必要があります。TLS セッション チケットを使用していない場合は、それらを実装することで、再開された接続の SSL 接続オーバーヘッドを削減できる可能性があります。
  • オペレーション: io/database_load 指標を使用して、各オペレーション タイプで使用されているデータベースの負荷の総量を確認できます。io/database_load をオペレーション タイプでグループ化し、タイプごとにトラブルシューティングを行うようにしてください。
  • ストレージ: storage/limitstorage/total_bytes を使用して、ストレージの使用率を Realtime Database ストレージ制限と関連させながらモニタリングできます。

Cloud Monitoring で使用可能な Realtime Database 指標の一覧をご覧ください。

Cloud Monitoring ワークスペースを作成する

Cloud Monitoring を使用して Realtime Databaseをモニタリングするには、プロジェクト用にワークスペースを設定する必要があります。ワークスペースでは、1 つ以上のプロジェクトから得られるモニタリング情報が整理して示されます。ワークスペースを設定したら、カスタムのダッシュボードとアラート ポリシーを作成できます。

  1. Cloud Monitoring のページを開く

    プロジェクトがすでにワークスペースに含まれている場合は、Cloud Monitoring のページが開きます。それ以外の場合は、プロジェクト用のワークスペースを選択します。

  2. [新しいワークスペースの作成] オプションを選択するか、既存のワークスペースを選択します。

  3. [追加] をクリックします。ワークスペースが作成されると、Cloud Monitoring のページが開きます。

ダッシュボードを作成してグラフを追加する

Cloud Monitoring で収集された Realtime Database の指標を、独自のグラフとダッシュボードに表示します。

続行する前に、プロジェクトが Cloud Monitoring ワークスペースに含まれていることを確認してください。

  1. Cloud Monitoring ページでワークスペースを開き、[ダッシュボード] ページに移動します。

    [ダッシュボード] ページに移動

  2. [Create Dashboard] をクリックし、ダッシュボードの名前を入力します。

  3. 右上隅にある [グラフを追加] をクリックします。

  4. [グラフを追加] ウィンドウで、グラフのタイトルを入力します。[Metric] タブをクリックします。

  5. [Find resource type and metric] フィールドに「Firebase Realtime Database」と入力します。情報が自動入力されているプルダウンから、Realtime Database 指標の 1 つを選択します。

  6. 同じグラフに指標を追加するには、[指標を追加] をクリックし、上述の手順を繰り返します。

  7. 必要に応じて、グラフを調整します。たとえば、[Filter] フィールドで [+ Add a filter] をクリックします。スクロールして、グラフのフィルタリングを適用する指標の値または範囲を選択します。

  8. [保存] をクリックします。

Cloud Monitoring グラフの詳細については、グラフの操作をご覧ください。

アラート ポリシーを作成する

Realtime Database の指標に基づいてアラート ポリシーを作成できます。 次の手順に沿って、特定の Realtime Database の指標が特定のしきい値に到達するとメールで通知するアラート ポリシーを作成できます。

続行する前に、プロジェクトが Cloud Monitoring ワークスペースに含まれていることを確認してください。

  1. Cloud Monitoring ページでワークスペースを開き、[Alerting] ページに移動します。

    [Create New Alerting Policy] ページに移動

  2. [Create Policy] をクリックします。

  3. アラート ポリシーの名前を入力します。

  4. Realtime Database のいずれかの指標に基づくアラートの条件を追加します。 [ADD CONDITION] をクリックします。

  5. [Target] を選択します。[Find resource type and metric] フィールドに「Realtime Database」と入力します。情報が自動入力されているプルダウンから、Realtime Database 指標の 1 つを選択します。

  6. [Policy triggers] で、プルダウン フィールドを使用してアラート条件を定義します。

  7. アラート ポリシーに通知チャンネルを追加します。[Notifications] で [Add Notification Channel] をクリックします。プルダウン メニューから [Email] を選択します。

  8. [Email address] フィールドにメールアドレスを入力します。[Add] をクリックします。

  9. 必要に応じて、ドキュメントのフィールドに情報を入力します。この情報は、メール通知に追加情報として付加されます。

  10. [保存] をクリックします。

Realtime Database の使用量が構成済みのしきい値を超えると、メール通知アラートが届きます。

アラート ポリシーの詳細については、アラートの概要をご覧ください。

次のステップ