スループットを測定する
Azure Monitor for Azure Cosmos DB には、Azure Cosmos DB の各種操作によって消費される要求ユニットの分析に使用できるメトリックとして、要求ユニットの合計があります。 さらに、このメトリックを使用して、スループットが最も高い操作を分析できます。
このメトリックを監視すると、次のことが可能になります。
- 要求ユニットの消費量が突出して多い操作を突き止める。
- 特定の時間内に消費された累積要求ユニットが特に多い操作を突き止める。
スループットが特に高い操作を突き止めることで、たとえば次のようなことが可能になります。
- それらが挿入操作や更新操作であるかどうかを調べ、特定のフィールドに対するインデックス作成の過剰や不足がないか、インデックス定義を再確認する。 そのうえで、インデックス作成ポリシーにパスを追加すべきか、ポリシーからパスを除外すべきかを判断できます。
- フィルター句と共にインデックスを使用するようにクエリを変更する。
- 異なるパーティションへのクエリの展開が最小限となるようなパーティション キーを使用する。
- 可能であれば、もっと小さな結果セットでクエリのニーズを満たせないかを評価する。
要求ユニットの合計メトリックを確認する
要求ユニットの総数メトリックを確認するには、Azure Monitor の [メトリック] で次のようにします。
- スコープ ダイアログの [リソースの種類] で [Azure Cosmos DB アカウント] を選択し、[適用] を選択します。
- ドロップダウン リストから適切な Azure Cosmos DB アカウントを選択します。
- [メトリック] で [要求ユニットの合計] と必要な集計の種類を選択します。
- 必要であれば、メトリックの [時間の範囲] と [時間の粒度] を調整します。
要求ユニットの合計をフィルターでさらに絞り込む
既定では、選択したアカウントによって行われたすべての Azure Cosmos DB 操作の全体的なスループットが Azure Monitor によって表示されます。 スループットを分析しやすいよう、操作の種類ごとの総使用量を調べたり、複数の種類の操作を対象にその使用量を同時に比較したりするためには、もっと粒度の細かいフィルタリングが必要となります。 そうした分析には、[フィルターの追加] オプションと [分割を適用する] オプションが効果的です。
Azure Monitor では、特定の CollectionName、DatabaseName、OperationType、Region、Status、StatusCode をフィルター条件に追加してさらに結果を絞り込むことができます。 たとえば、操作の種類を条件とするフィルターを追加すれば、各種の Azure Cosmos DB 操作の使用量を確認できます。