Cloud Firestore のアクティビティをモニタリングする

このページでは、Cloud Firestore の使用状況をモニタリングし、アプリの潜在的な問題を特定する方法について説明します。

使用状況ダッシュボード

Google Cloud Platform コンソールと Firebase コンソールの使用状況ダッシュボードを使用して、ドキュメントの読み取り、書き込み、削除の推移を確認します。

アクセス制御

使用状況ダッシュボードを使用するには、monitoring.timeSeries.list Cloud IAM 権限が必要です。プロジェクト オーナー、編集者、閲覧者のロールにより、この権限が付与されます。Cloud Monitoring ロールまたはカスタムロールによってこの権限を付与することもできます。

データベース使用状況ダッシュボード

Cloud Firestore データベースの使用状況の指標を表示するには、GCP コンソールでデータベースの [使用状況] ページを開きます。

  1. Google Cloud Platform コンソールで、[データベース] ページに移動します。

    [データベース] に移動

  2. データベースのリストから、必要なデータベースを選択します。

  3. ナビゲーション メニューで [使用状況] をクリックします。

  4. ページに表示されるメッセージのリンクをクリックして、データベースの使用状況を確認します。

    GCP Console の Cloud Firestore データべ―ス使用状況ダッシュボード。

集計された使用状況ダッシュボード

プロジェクトに複数の Cloud Firestore データベースが含まれている場合は、GCP コンソールまたは Firebase コンソールで集計された使用状況の指標が表示されます。

GCP Console

Google Cloud Platform コンソールで、[プロジェクトの使用状況] ページに移動します。

GCP プロジェクトの [プロジェクトの使用状況] に移動

プロジェクトの使用状況ダッシュボードには、ドキュメントのオペレーションの推移が次のように表示されます。

GCP Console の Cloud Firestore プロジェクト使用状況ダッシュボード。

Firebase コンソール

Cloud Firestore の使用状況のページに移動(Firebase コンソール)

Firebase コンソールの Cloud Firestore 使用状況ダッシュボード。

使用状況ダッシュボードと請求レポート

Firebase コンソールと Cloud Console の Cloud Firestore 使用状況ダッシュボードには、使用状況の予想が表示されます。これらは使用量の急増を特定するのに役立ちます。ただし、ダッシュボードには、課金対象のオペレーションは正確には表示されません。課金される使用量はこれよりも多くなる可能性があります。一致しない場合は、請求レポートが使用状況ダッシュボードよりも優先されます。

使用状況ダッシュボードと課金される使用量の不一致の原因となるオペレーションには、次のようなものがあります。

  • インポートとエクスポートのオペレーション。これらのオペレーションで行われた読み取りと書き込みは、使用状況ダッシュボードに表示されません。
  • NoOps の検証のみの書き込み。ドキュメントの有無のみを検証する書き込みは、課金される読み取りオペレーションに反映されますが、書き込み使用状況ダッシュボードにはそれぞれ「UPDATE_NOOP」と「DELETE_NOOP」と表示されます。
  • NoOps の書き込み。フィールド値を変更しない更新や、削除されたドキュメントへの書き込みなど、データベースの変更につながらないオペレーションは、使用状況ダッシュボードに「UPDATE_NOOP」や「DELETE_NOOP」として表示される場合があります。「NOOP」と表示される場合でも、課金対象のオペレーションになります。
  • 折りたたまれた書き込み。同じドキュメントに複数の書き込みを連続して行う場合、使用状況ダッシュボードでは複数の書き込みがまとめて折りたたまれて 1 回としてカウントされる場合があります。使用量を請求する場合、各書き込みが別々にカウントされます。

    また、使用状況ダッシュボードは、サーバーのタイムスタンプ、数値の増分、配列ユニオン オペレーションなどのフィールド変換の場合も書き込みを折りたたみます。フィールド変換の場合、使用状況ダッシュボードは複数のオペレーションを 1 回のオペレーションとしてカウントします。

  • 0 件の結果を返すクエリ。0 件の結果を返すクエリについては、1 回の読み取りオペレーションに対する費用が発生します。この使用量は課金の対象になりますが、使用状況ダッシュボードには表示されません。
  • COUNT などの集約クエリに関連付けられている読み取りオペレーション。この使用量は課金の対象になりますが、使用状況ダッシュボードには表示されません。

データベース用使用状況ダッシュボードには、有効期間(TTL)ポリシーで実行される自動有効期限オペレーションはキャプチャされません。Cloud Monitoring の TTL 指標を参照してください。

セキュリティ ルールの使用

また、Firebase コンソールにはセキュリティ ルールの評価ダッシュボードが用意され、ルール呼び出しを一目で確認できます。Cloud Monitoring の詳細な分析でこのダッシュボードを補足できます。

[ルール] にアクセスします

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

Cloud Monitoring の指標

Cloud Monitoring は、Google Cloud プロダクトから指標、イベント、メタデータを収集します。Cloud Firestore コンソールの使用状況ダッシュボードにも同じ指標データが表示されます。カスタム ダッシュボードと使用状況アラートを設定するには、Cloud Monitoring を使用します。

Cloud Monitoring には、Cloud Firestore の次の指標が含まれます。

指標名 説明
ドキュメントの読み取り

ドキュメントの読み取りの成功回数。読み取りのタイプ(LOOKUP または QUERY)でこの指標を分類できます。

この指標には、マネージド エクスポート オペレーションによる読み取りは含まれません。

ドキュメントの書き込み

ドキュメントの書き込みの成功回数。書き込みのタイプ(CREATE または UPDATE)でこの指標を分類できます。

この指標には、マネージド インポート オペレーションによる書き込みは含まれません。

ドキュメントの削除 ドキュメントの削除の成功回数。
アクティブな接続

データベースへのアクティブな接続数。

アクティブなモバイル SDK とウェブ SDK はそれぞれ接続を 1 つ維持し、その接続は複数のスナップショット リスナー間で共有できます。サーバー クライアント ライブラリは、スナップショット リスナーごとに 1 つの接続を作成します。

スナップショット リスナー

すべてのアクティブな接続全体でのスナップショット リスナーの数。

有効期間による削除数

有効期間(TTL)ポリシーによって削除されたドキュメントの合計数。

有効期間の期限切れから削除までの遅延

有効期間(TTL)ポリシーに基づいてドキュメントが期限切れになってから実際に削除されるまでの経過時間。

リアルタイム アップデートの使用状況

アクティブな接続とスナップショット リスナーの指標を使用して、リアルタイム アップデートの使用状況を測定します。

たとえば、ユーザーがスマートフォン上でアプリを開くとします。するとアプリは Cloud Firestore に接続し、10 個のクエリにサブスクライブします。これにより、アクティブな接続の指標は 1、スナップショット リスナーの指標は 10 増加します。

サンプリング レート

Cloud Firestore の指標は 1 分ごとにサンプリングされますが、更新がダッシュボードに表示されるまでに最長で 4 分かかることがあります。

レイテンシの指標

バックエンド レイテンシの指標は、一般的な Google Cloud serviceruntime の指標を介して利用できます。

たとえば、p50 レイテンシのグラフは、Cloud コンソールの Metrics Explorer ビューで確認できます。

Cloud Monitoring ダッシュボードを設定する

Cloud Firestore の指標を使用してダッシュボードを設定するには、カスタム ダッシュボードを管理するダッシュボード ウィジェットを追加するをご覧ください。

次のステップ