Azure Cosmos DB のコンテナーまたはアカウントでの操作に対するサーバー側の待機時間を監視する方法
適用対象: NoSQL MongoDB Cassandra Gremlin Table
Azure Monitor for Azure Cosmos DB では、アカウントを監視したり、ダッシュボードを作成したりするためのメトリック ビューが提供されています。 Azure Cosmos DB のメトリックは既定で収集されるので、この機能を使用するために何かを明示的に有効にしたり構成したりする必要はありません。 サーバー側の待機時間メトリック ダイレクトとサーバー側の待機時間ゲートウェイ メトリックは、2 つの異なる接続モードで操作のサーバー側の待機時間を表示するために使用されます。 要求操作をゲートウェイ接続モードで行う場合は、サーバー側の待機時間ゲートウェイ メトリックを使用します。 要求操作を直接接続モードで行う場合は、サーバー側の待機時間ダイレクト メトリックを使用します。 Azure Cosmos DB では、直接接続でのポイント読み取りおよび書き込み操作に対して、10 ミリ秒未満の SLA が提供されています。 ポイント読み取りとポイント書き込み操作の場合、SLA は SLA のドキュメントで詳しく説明されているように計算されます。 接続モードの詳細については、接続モードに関する記事を参照してください。
次の表は、サーバー側の待機時間メトリック (ダイレクトとゲートウェイ) をサポートする API を示しています。
API | サーバー側の待機時間ダイレクト | サーバー側の待機時間ゲートウェイ |
---|---|---|
SQL | ✓ | ✓ |
MongoDB | ✓ | |
Cassandra | ✓ | |
Gremlin | ✓ | |
テーブル | ✓ | ✓ |
次のようなポイント操作で待機時間が異常に長引く場合は、サーバー側の待機時間メトリックを監視できます。
- パーティション キーと ID を使用した取得または設定操作
- 読み取り操作または書き込み操作
- クエリ
診断ログを調べて、返されたデータのサイズを確認できます。 クエリ操作で待ち時間が長引く場合、診断ログでスループットや毎秒 RU が高くないか調べます。 サーバー側の待ち時間には、データがクライアントに返されるまでバックエンド インフラストラクチャで費やされた時間が表示されます。 バックエンドの待ち時間問題をなくすためには、この指標を確認することが重要です。
サーバー側の待機時間メトリックを表示する
Azure portal にサインインします。
左側のナビゲーション バーから [監視] を選択し、 [メトリック] を選択します。
[メトリック] ウィンドウから、[リソースの選択] を選択し、必要なサブスクリプションとリソース グループを選択します。 [リソースの種類] では、[Azure Cosmos DB accounts](Azure Cosmos DB アカウント) を選択し、既存の Azure Cosmos DB アカウントの一つを選択し、[適用] を選択します。
次に、操作をゲートウェイ接続モードで行う場合は、使用可能なメトリックの一覧から [Server Side Latency Gateway](サーバー側の待機時間ゲートウェイ) メトリックを選びます。 操作を直接接続モードで行う場合は、[Server Side Latency Direct](サーバー側の待機時間ダイレクト) メトリックを選びます。 この一覧で使用可能なすべてのメトリックの詳細については、「カテゴリ別のメトリック」の記事を参照してください。 この例では、[Server Side Latency Gateway](サーバー側の待機時間ゲートウェイ) および集計値として [平均] を選びます。 これらの詳細に加えて、メトリックの [時間の範囲] と [時間の粒度] を選択することもできます。 最大で、過去 30 日間のメトリックを表示できます。 フィルターを適用すると、そのフィルターに基づいてグラフが表示されます。 ゲートウェイ接続モードでは、選んだ期間の 5 分ごとにサーバー側の待機時間を確認できます。
サーバー側の待機時間のフィルター
メトリックを特定の CollectionName、DatabaseName、OperationType、Region、PublicAPIType でフィルター処理してグラフを表示することもできます。
メトリックをフィルター処理するには、[フィルターの追加] を選び、PublicAPIType などの必要なプロパティを選んで、値 Sql を選びます。 [OperationType] には [Apply Splitting]\(分割の適用) を選びます。 その後、グラフには、選んだ期間におけるゲートウェイ接続モードでのさまざまな操作のサーバー側の待機時間が表示されます。 ストアド プロシージャを介して実行された操作は、ログに記録されないため、OperationType メトリックでは使用できません。
次の図に示すように、各操作に対する [Server Side Latency Gateway](サーバー側の待機時間ゲートウェイ) メトリックが表示されます。
[Apply splitting](分割の適用) オプションを使用して、メトリックをグループ化することもできます。
注意
Azure Cosmos DB 送信される要求は、必ずしもコンテナーがターゲットとは限りません。 たとえば、グローバルに分散されたアカウント内でデータベースを作成しても、サーバー側の待機時間メトリックのために要求は記録されます。 データベース リソースの作成に時間がかかるため、要求は記録されますが、コンテナーはターゲットではありません。 CollectionName
メトリックの値が <empty>
である場合、このターゲットはコンテナーではなく、Azure Cosmos DB の他のリソースであることを意味します。
回避策として、メトリックを特定のコンテナー (CollectionName) に事前にフィルター処理し、クエリの対象であるコンテナーに固有ではない要求を除外できます。
次のステップ
- Azure の診断設定を使用して Azure Cosmos DB データを監視する
- Azure Cosmos DB コントロール プレーン操作を監査する