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

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

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

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

Firebase コンソール

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

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

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

Firebase コンソールの Realtime Database ルールのモニタリング ダッシュボード。

また、Firebase コンソールには Firebase セキュリティ ルールの評価ダッシュボードが用意されており、ルール呼び出しを一目で確認できます。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. 同じグラフに指標を追加するには、[Add Metric] をクリックし、上記の手順を繰り返します。

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

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

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. [Save] をクリックします。

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

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

次のステップ