Azure の診断設定を使用して Azure Cosmos DB データを監視する
適用対象: NoSQL MongoDB Cassandra Gremlin Table
Azure の診断設定は、リソース ログの収集に使用されます。 リソースからは Azure リソース ログが出力され、そのリソースの操作に関する豊富なデータが頻繁に提供されます。 これらのログは、要求ごとに取得され、"データ プレーン ログ" とも呼ばれます。データ プレーン操作の例としては、delete、insert、readFeed などがあります。 これらのログの内容は、リソースの種類によって異なります。
プラットフォーム メトリックとアクティビティ ログは自動的に収集されますが、リソース ログを収集したり、それらを Azure Monitor の外部に転送したりするには、診断設定を作成する必要があります。 Azure Cosmos DB アカウントの診断設定を有効にしてリソース ログを次のソースに送信できます。
- Log Analytics ワークスペース
- Log Analytics に送信されるデータを、Azure Diagnostics (レガシ) またはリソース固有(プレビュー) のテーブルに書き込むことができます
- イベント ハブ
- ストレージ アカウント
Note
REST API を介して診断設定を作成するための手順に従って、診断設定をリソース固有のモードで作成することをお勧めします (Table 用 API を除くすべての API の場合)。 このオプションを使用するとさらなるコスト最適化が得られ、データ処理のビューも向上します。
前提条件
- 既存の Azure Cosmos DB アカウント。
- Azure サブスクリプションをお持ちの場合は、新しいアカウントを作成します。
- Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
- または、コミットする前に Azure Cosmos DB を無料で試すこともできます。
診断設定の作成
ここでは、アカウントの診断設定を作成するプロセスについて説明します。
Azure portal にサインインします。
Azure Cosmos DB アカウントに移動します。 [監視]セクションの [診断設定] ペインを開き、[診断設定の追加] オプションを選択します。
重要
フルテキスト クエリ 機能が自分のアカウントで有効になっていない場合は、"フルテキスト クエリ [...] を有効にして詳細なログ記録を行う" というプロンプトが表示される場合があります。 この機能を有効にしない場合は、この警告を無視しても問題ありません。 詳細については、「フルテキスト クエリを有効にする」を参照してください。
[診断設定] ウィンドウで、フォームに希望のカテゴリを入力します。 ログ カテゴリの一覧を次に示します。
カテゴリ API 定義 キー プロパティ DataPlaneRequests NoSQL 用 API に推奨 データ プレーン操作としてバック エンド要求をログに記録します。これは、アカウント内のデータを作成、更新、削除、または取得するために実行される要求です。 Requestcharge
、statusCode
、clientIPaddress
、partitionID
、resourceTokenPermissionId
resourceTokenPermissionMode
MongoRequests MongoDB 用 API Azure Cosmos DB for MongoDB に要求を提供するために、ユーザーがフロントエンドから開始した要求をログします。 このカテゴリを有効にするときは、必ず DataPlaneRequests を無効にしてください。 Requestcharge
、opCode
、retryCount
,piiCommandText
CassandraRequests Apache Cassandra 用 API Azure Cosmos DB for Cassandra に要求を提供するために、フロントエンドからユーザーが開始した要求をログします。 operationName
、requestCharge
、piiCommandText
GremlinRequests Apache Gremlin 用 API Azure Cosmos DB for Gremlin に要求を提供するために、ユーザーがフロントエンドから開始した要求をログします。 operationName
、requestCharge
、piiCommandText
,retriedDueToRateLimiting
QueryRuntimeStatistics NoSQL 用 API このテーブルは、NoSQL 用 API アカウントに対して実行されるクエリ操作の詳細を示します。 既定では、クエリ テキストとそのパラメータは難読化されるため、要求によって利用可能なフル テキスト クエリ ログ記録に個人データがログ記録されることが防止されます。 databasename
、partitionkeyrangeid
、querytext
PartitionKeyStatistics すべての API 論理パーティション キーの統計情報を、パーティション キーの推定ストレージ サイズ (KB) を示すことにより、ログ記録します。 この表は、ストレージ スキューをトラブルシューティングするときに便利です。 この PartitionKeyStatistics ログは、次の条件に該当する場合にのみ出力されます。1. 物理パーティション内のドキュメントの少なくとも 1% が同じ論理パーティション キーを持っている。 2. 物理パーティション内のすべてのキーのうち、ストレージ サイズが最も大きい上位 3 つのキーが PartitionKeyStatistics ログによってキャプチャされる。 前の条件が満たされていない場合、パーティション キーの統計データは使用できません。 アカウントで上記の条件が満たされていなくても問題ありません。通常、これは論理パーティションのストレージ スキューがないことを示しています。 注: パーティション キーの推定サイズは、物理パーティション内のドキュメントが概ね同じサイズであると想定するサンプリング アプローチを使用して計算されます。 物理パーティション内のドキュメントのサイズが均一でない場合、パーティション キーの推定サイズが正確でなくなる可能性があります。 subscriptionId
、regionName
、partitionKey
,sizeKB
PartitionKeyRUConsumption NoSQL 用 API または Apache Gremlin 用 API パーティション キーの RU (秒単位) の合計消費量をログに記録します。 この表は、ホット パーティションのトラブルシューティングで役立ちます。 現在、Azure Cosmos DB では、NoSQL 用 API アカウントの場合にのみ、ポイントの読み取りまたは書き込み、クエリとストアド プロシージャ操作について、パーティション キーが報告されます。 subscriptionId
、regionName
、partitionKey
、requestCharge
、partitionKeyRangeId
ControlPlaneRequests すべての API アカウントの作成、リージョンの追加または削除、アカウントのレプリケーション設定の更新など、コントロール プレーンの操作に関する詳細をログに記録します。 operationName
、httpstatusCode
、httpMethod
,region
TableApiRequests Table 用 API Azure Cosmos DB for Table への要求を処理するために、ユーザーがフロントエンドから開始した要求をログします。 operationName
、requestCharge
、piiCommandText
カテゴリの詳細を選択したら、適切な宛先にログを送信します。 Log Analytics ワークスペースにログを送信する場合は、[対象テーブル] で [リソース固有] を選択してください。
クエリ テキストをログに記録するためにフルテキスト クエリを有効にする
Note
この機能を有効にすると、追加のログ コストが発生することがあります。料金の詳細については「Azure Monitor の価格」を参照してください。 トラブルシューティングを行った後に、この機能を無効にすることをお勧めします。
Azure Cosmos DB では、詳細なトラブルシューティングのために機能拡張されたログ記録が提供されます。 フルテキスト クエリを有効にすると、Azure Cosmos DB アカウント内のすべての要求で、難読化解除されたクエリを表示できます。 また、ログ内のこのデータにアクセスして表示するためのアクセス許可を Azure Cosmos DB に付与します。
クエリ データ
新たに有効になったこれらの機能を使用してクエリを実行する方法については、次を参照してください。