このページでは、Datastore モードの Firestore の Key Visualizer 診断ツールの概要について説明します。
Key Visualizer とは
Key Visualizer は、Datastore モードの使用パターンの分析に役立つツールです。アクセスするエンティティ、または、エンティティが変更された時に作成または削除されたインデックス エントリに基づいて、使用状況を分類するビジュアルなレポートを生成します。
Key Visualizer によって、使用パターンに関する大規模な分析情報を取得できます。Key Visualizer の用途には次のものがあります。
- パフォーマンスの問題に対してトラブルシューティングを行う。Key Visualizer は、連続するエンティティ キーまたはインデックス キーのホットスポットや急激なトラフィックの増加によって起こる、データベースのパフォーマンスの問題を特定するのに役立ちます。
- Datastore モードで保存されているデータへのアクセス方法をより深く理解する。
- データモデルを反復して設計するか、既存のデータモデルの設計を改善する。それぞれの反復で、Key Visualizer を使用してデータモデルの問題を確認できます。
これらの目的で Key Visualizer を使用すると、次のことを行うことができます。
- 読み取りまたは書き込みで、特定のエンティティ範囲のホットスポットが作成されるかどうかを確認する。
- トラフィックの急増がレイテンシにどのように影響するかを確認する。
- データベース全体でバランスよくアクセスされているかどうかを確認する。
- インデックス キーの構造を確認して、インデックス読み込みの問題を引き起こすインデックス定義を特定する。
- インデックスキーの可視化を使用して、ワークロード パターンの予測を改善する。
スキャン要件
Key Visualizer の各スキャンは、2 時間の期間に対応しています。特定の期間のスキャンは、その期間中の 1 分間に 3,000 回を超えるドキュメント オペレーションのトラフィックがあるデータベースに対して使用できます。
スキャンの適格性は、データベースのアクティビティに完全に依存します。データ量やデータベース内のデータの種類には依存しません。
Key Visualizer スキャン
次の画像は、Key Visualizer スキャンの画面です。各スキャンには、エンティティキーまたはインデックスキーのグループに対するアクセス パターンまたはパフォーマンス指標が時系列で表示されるヒートマップが含まれています。
スキャンの URL の共有
Key Visualizer スキャンの URL は、共有したりブックマークしたりできます。この URL は同じ Key Visualizer スキャンを開き、同じ指標を選択します。この URL は、スキャンデータ期間が終了するまで有効です。
ヒートマップ
Key Visualizer スキャンのコア部分はヒートマップです。ここには、最大 1,000 個の連続するキーバケットに分割された指標値の推移が表示されます。
エンティティ キーのヒートマップの場合、ヒートマップの X 軸は時間を表し、Y 軸はエンティティ キーを表します。一方、インデックス キーのヒートマップの場合、ヒートマップの X 軸は時間を表し、Y 軸はインデックス キーを表します。
Datastore モードの Firestore 用の Key Visualizer の各スキャンは、10 秒間のセグメントに分割された 2 時間のアクティビティに対応しています。
指標値が低い場合は「コールド」とみなされ、暗い色で表示されます。値が高い場合は「ホット」になり、明るい色で表示されます。最高値は白で表示されます
使用パターンが異なると、ヒートマップに表示されるパターンも変わるので、問題の部分を一目で特定できます。一部の一般的なパターンの例については、エンティティ キーのヒートマップ パターンまたはインデックス キーのヒートマップ パターンをご覧ください。
Key Visualizer には、スキャン結果の分析に役立つツールが用意されています。Key Visualizer スタートガイドとヒートマップの使い方をご覧ください。
キーバケット
Key Visualizer は、データベース内のすべてのキーを最大 1,000 個の連続範囲に分割し、それぞれの範囲にほぼ同じ数のキーと オペレーション/秒 が含まれるようにします。この範囲をキーバケットといいます。
Key Visualizer は、データベースの合計オペレーション/秒を使用してキーバケットを分割し、各バケットがキーバケットあたり最小目標サイズ 50 オペレーション/秒でほぼ同じ数のオペレーション/秒をキャプチャするようにします。合計オペレーション/秒が高いデータベースの場合、キーバケットはそれぞれ 50 オペレーション/秒以上をキャプチャできます。50 オペレーション/秒未満のデータベースでは、1 つのキーバケットでスキャンされます。
Key Visualizer の指標は、各キーバケット全体の平均値または各キーバケット内の最大値としてレポートされます。
指標
Key Visualizer スキャンのエンティティキーでは、次の指標を使用できます。
指標 | 説明 |
---|---|
アクティビティの指標 | |
オペレーション/秒 | 1 秒あたりのエンティティ オペレーションの平均数。1 秒あたりの書き込み、ルックアップ、クエリの合計件数にほぼ等しくなります。この指標はホットのキーを示します。 |
書き込みオペレーション/秒 | 書き込みと削除の、1 秒あたりの平均エンティティ オペレーション数。 |
ルックアップ オペレーション/秒 | ルックアップの 1 秒あたりのエンティティ オペレーションの平均数。 |
クエリ オペレーション数/秒 | クエリの 1 秒あたりのエンティティ オペレーションの平均数。 |
パフォーマンス指標 | |
書き込み平均レイテンシ | バケットで処理されたデータ内の書き込みと削除の平均レイテンシ。 |
ルックアップ平均レイテンシ | バケットで処理されたデータ内のルックアップの平均レイテンシ。 |
クエリの平均レイテンシ | バケットで処理されたデータ内のクエリの平均レイテンシ。 |
テール レイテンシの書き込み | バケットで処理されたデータ内で観測された書き込みレイテンシまたは削除レイテンシの最大値。 |
ルックアップ テール レイテンシ | バケットで処理されたデータ内で観測された最大ルックアップ レイテンシ。 |
クエリ テール レイテンシ | バケットで処理されたデータ内で観測された最大クエリ レイテンシ。 |
Key Visualizer スキャンのインデックス キーには次の指標を使用できます。
指標 | 説明 |
---|---|
インデックス書き込みオペレーション/秒 | 1 秒あたりの平均インデックス書き込み数。 |
パフォーマンス平均値
平均レイテンシ指標は、キーバケット内のキーの平均値を取ります。この測定はストレージ レイヤで行われるため、ここで報告されるレイテンシは、API 呼び出しで発生する合計レイテンシよりも低くなる場合があります。
上限
Key Visualizer にはさまざまな指標が表示されますが、Datastore モードのパフォーマンスに影響を及ぼす可能性がある指標がすべて表示されるわけではありません。次に例を示します。
- アプリケーションと Google Cloud の間のネットワークの問題は表示されない場合があります。これらは、Key Visualizer のすべてのキーで縦方向のバンドとして表示され、得られるのは問題が発生したタイミングについてのヒントのみです。
データ期間
Datastore モードの Firestore 用の Key Visualizer によって収集されたデータは 14 日後に削除されます。
Key Visualizer では、過去 14 日間のデータを利用できます。たとえば、12 月 19 日の午後 12 時 45 分に Key Visualizer を起動した場合、2 時間の開始時間として選択できる最も早い開始時刻は 12 月 5 日の午後 1 時です。
また、Key Visualizer スキャンの URL をブックマークに登録するか、共有する場合、その URL の有効期間は最大 14 日になります。
次のステップ
- Key Visualizer の使い方を学習する。
- Key Visualizer ヒートマップに表示されるエンティティ キーのパターンまたはインデックス キーのパターンについて理解する。
- ヒートマップの確認方法を理解する。