Cloud Monitoring でデータベースをモニタリングする
このページでは、MongoDB 互換の Firestore の Cloud Monitoring 指標を使用してデータベースをモニタリングする方法について説明します。
MongoDB 互換の Firestore の Cloud Monitoring 指標
以降のセクションでは、MongoDB 互換の Firestore で使用可能な指標の概要について説明します。
モニタリング対象リソース
Cloud Monitoring のモニタリング対象リソースは、仮想マシン、データベース、アプリケーションなどの論理エンティティまたは物理エンティティを表します。モニタリング対象リソースには、ダッシュボードを通じて調査、報告したり、アラートの作成に使用したりできる一意の指標セットが含まれています。各リソースには、リソースに関する追加情報を保持する Key-Value ペアである一連のリソースラベルもあります。リソースラベルは、リソースに関連付けられたすべての指標で使用できます。
Cloud Monitoring API を使用すると、MongoDB 互換の Firestore のパフォーマンスは次のリソースでモニタリングされます。
関連情報 | 説明 |
firestore.googleapis.com/Database | project 、location 、database_id の内訳を提供するモニタリング対象のリソースタイプ。 |
指標
Firestore の指標の一覧については、Firestore の指標をご覧ください。以降のセクションでは、使用可能な指標について説明します。
サービス ランタイム指標
serviceruntime
指標は、プロジェクトのトラフィックの概要を示します。これらの指標は、ほとんどの Google Cloud API で使用できます。consumed_api
モニタリング対象リソースタイプには、これらの一般的な指標が含まれています。これらの指標は 30 分ごとにサンプリングされるため、データが平滑化されます。
serviceruntime
指標の重要なリソースラベルは method
です。このラベルは、呼び出された基盤となる RPC メソッドを表します。呼び出す SDK メソッドの名前は、基盤となる RPC メソッドの名前と同じであるとは限りません。その理由は、SDK が高レベルの API 抽象化を提供するためです。ただし、アプリケーションと Firestore の相互作用を理解しようとする場合は、RPC メソッドの名前に基づく指標を理解することが重要です。
特定の SDK メソッドの基盤となる RPC メソッドを知る必要がある場合は、API のドキュメントをご覧ください。
api/request_latencies
api/request_latencies
指標は、完了したすべてのリクエストのレイテンシ分布を示します。
Firestore は、Firestore Service コンポーネントから指標を記録します。レイテンシ指標には、Firestore がリクエストを受信してから Firestore がレスポンスの送信を完了するまでの時間(ストレージ レイヤとのやり取りを含む)が含まれます。そのため、クライアントと Firestore サービス間のラウンドトリップ レイテンシ(rtt)はこれらの指標に含まれません。
ドキュメント オペレーションの指標
Firestore は、読み取り、書き込み、削除のカウントを提供します。書き込み指標には、「CREATE」オペレーションと「UPDATE」オペレーションの内訳が表示されます。これらの指標は CRUD オペレーションに対応しています。
次の指標を使用すると、データベースが読み取り重視か書き込み重視か、新しいドキュメントと削除されたドキュメントの割合を把握できます。
document/delete_ops_count
: ドキュメントの削除の成功回数。document/read_ops_count
: クエリまたはルックアップからのドキュメントの読み取りの成功回数。document/write_ops_count
: ドキュメントの書き込みの成功回数。
課金指標
これらの指標を使用して、課金対象の使用量を把握します。これらの指標には、管理者オペレーション(インデックス登録、インポート、エクスポート、一括削除)による課金は含まれません。
api/billable_read_units
: 課金対象の読み取りユニットの数。使用状況は、サービス名と API メソッドで分類できます。api/billable_write_units
: 課金対象の書き込みユニット数。使用状況は、サービス名と API メソッドで分類できます。document/billable_managed_delete_write_units
: TTL などのマネージド削除サービスから課金対象の書き込みユニット数。
インデックス指標
インデックスの書き込みレートは、インデックスのファンアウトを把握するために document/write_ops_count
指標と比較できます。
index/write_count
: インデックスの書き込み数。
TTL 指標
MongoDB 互換の Firestore の TTL 指標は、適用された TTL ポリシーの効果をモニタリングするために使用されます。
document/ttl_deletion_count
: TTL サービスによって削除されたドキュメントの合計数。document/ttl_expiration_to_deletion_delays
: TTL があるドキュメントが期限切れになってから、実際に削除されるまでの経過時間。
事前定義のダッシュボードを表示し、カスタム ダッシュボードを作成する
MongoDB 互換の Firestore は、Cloud Monitoring 指標を使用する事前定義されたダッシュボードをサポートしています。カスタム ダッシュボードを作成することもできます。
データベースの使用状況の指標を表示する
Google Cloud コンソールの使用状況ダッシュボードを開いて、ドキュメントの読み取り、書き込み、削除の推移を確認します。
アクセス制御
使用状況ダッシュボードを使用するには、monitoring.timeSeries.list
Identity and Access Management(IAM)権限が必要です。プロジェクト オーナー、編集者、閲覧者のロールにより、この権限が付与されます。Cloud Monitoring ロールまたはカスタムロールによってこの権限を付与することもできます。
データベース使用状況ダッシュボード
MongoDB 互換の Firestore データベースの使用状況の指標を表示する手順は次のとおりです。
Google Cloud コンソールで、[データベース] ページに移動します。
データベースのリストから、必要なデータベースを選択します。
ナビゲーション メニューで [使用状況] をクリックします。
使用状況ダッシュボードと請求レポート
コンソールの Firestore 使用状況ダッシュボードには、使用状況の予想が表示されます。これらは使用量の急増を特定するのに役立ちます。ただし、ダッシュボードには、課金対象のオペレーションは正確には表示されません。課金される使用量はこれよりも多くなる可能性があります。請求をモニタリングするには、請求指標をご覧ください。
一致しない場合は、請求レポートが使用状況ダッシュボードよりも優先されます。
インポート オペレーションとエクスポート オペレーションにより、使用状況ダッシュボードと課金対象の使用量の間に相違が生じます。これらのオペレーションで行われた読み取りと書き込みは、使用状況ダッシュボードに表示されません。
データベースのパフォーマンス指標を表示する
Google Cloud コンソールの Firestore セクションの [モニタリング] ページには、リクエスト レイテンシ(P50 と P99)、レスポンス コード、クエリ統計データ(P50)などの事前定義されたモニタリング ダッシュボードが含まれています。カスタム ダッシュボードを 1 つまで作成することもできます。データベースの [モニタリング] ページにアクセスする手順は次のとおりです。
Google Cloud コンソールで、Firestore の [データベース] ページを開きます。
リストからデータベースを選択します。
ナビゲーション メニューで [モニタリング] をクリックして、ダッシュボードを開きます。
カスタム Cloud Monitoring ダッシュボードを作成する
Cloud Monitoring では、カスタム ダッシュボードを使用して、関連する情報を体系的に表示できます。たとえば、本番環境にあるプロジェクトのパフォーマンス指標とアラート ポリシーを表示するダッシュボードを作成できます。
カスタム ダッシュボードの設定の詳細については、カスタム ダッシュボードを管理するとダッシュボード ウィジェットを追加するをご覧ください。
アラート ポリシーを作成する
Cloud Monitoring でアラートを作成すると、指標条件の変更が発生したときに通知を受け取ることができます。これらのアラートを使用すると、ユーザーに影響が及ぶ前に潜在的な問題について通知を受け取ることができます。
アラートの作成の詳細については、指標しきい値のアラート ポリシーを作成するをご覧ください。
レイテンシ アラート ポリシーを作成する次の例について考えてみます。アラート ポリシーは、5 分間のローリング ウィンドウで p99 レイテンシをチェックします。p99 レイテンシが 5 分間で 250 ミリ秒を超えると、アラートがトリガーされます。
コンソール
Google Cloud コンソールで、[モニタリング] ページに移動して、notifications アラートを選択します。
[ポリシーを作成] を選択します。
[Consumed API] リソースから [Request Latencies] 指標を選択します。
Firestore ネイティブ データベースの
firestore.googleapis.com
のサービスフィルタを追加します。[次へ] をクリックしてトリガーを構成します。
[条件タイプ] で [しきい値] を選択します。
しきい値条件は 250 ミリ秒のしきい値に設定されています。p99 レイテンシ値がローリング ウィンドウの期間(5 分)全体で同じ値のままであると、アラートがトリガーされます。
[しきい値] を [250] に設定します。
[次へ] をクリックして通知を構成します。
アラート ポリシー名を設定し、[次へ] をクリックします。
アラート構成を確認して [ポリシーを作成] をクリックします。
MQL
Monitoring Query Language(MQL)クエリを使用して、同じレイテンシ アラート ポリシーを実装できます。MQL の使用例については、サンプル MQL クエリをご覧ください。
fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
[value_request_latencies_percentile:
percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'