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 の場合)。 このオプションを使用するとさらなるコスト最適化が得られ、データ処理のビューも向上します。

前提条件

診断設定の作成

ここでは、アカウントの診断設定を作成するプロセスについて説明します。

  1. Azure portal にサインインします。

  2. Azure Cosmos DB アカウントに移動します。 [監視]セクション[診断設定] ペインを開き、[診断設定の追加] オプションを選択します。

    Sreenshot of the diagnostics selection page.

    重要

    フルテキスト クエリ 機能が自分のアカウントで有効になっていない場合は、"フルテキスト クエリ [...] を有効にして詳細なログ記録を行う" というプロンプトが表示される場合があります。 この機能を有効にしない場合は、この警告を無視しても問題ありません。 詳細については、「フルテキスト クエリを有効にする」を参照してください。

  3. [診断設定] ウィンドウで、フォームに希望のカテゴリを入力します。 ログ カテゴリの一覧を次に示します。

    カテゴリ API 定義 キー プロパティ
    DataPlaneRequests NoSQL 用 API に推奨 データ プレーン操作としてバック エンド要求をログに記録します。これは、アカウント内のデータを作成、更新、削除、または取得するために実行される要求です。 RequestchargestatusCodeclientIPaddresspartitionIDresourceTokenPermissionIdresourceTokenPermissionMode
    MongoRequests MongoDB 用 API Azure Cosmos DB for MongoDB に要求を提供するために、ユーザーがフロントエンドから開始した要求をログします。 このカテゴリを有効にするときは、必ず DataPlaneRequests を無効にしてください。 RequestchargeopCoderetryCount, piiCommandText
    CassandraRequests Apache Cassandra 用 API Azure Cosmos DB for Cassandra に要求を提供するために、フロントエンドからユーザーが開始した要求をログします。 operationNamerequestChargepiiCommandText
    GremlinRequests Apache Gremlin 用 API Azure Cosmos DB for Gremlin に要求を提供するために、ユーザーがフロントエンドから開始した要求をログします。 operationNamerequestChargepiiCommandText, retriedDueToRateLimiting
    QueryRuntimeStatistics NoSQL 用 API このテーブルは、NoSQL 用 API アカウントに対して実行されるクエリ操作の詳細を示します。 既定では、クエリ テキストとそのパラメータは難読化されるため、要求によって利用可能なフル テキスト クエリ ログ記録に個人データがログ記録されることが防止されます。 databasenamepartitionkeyrangeidquerytext
    PartitionKeyStatistics すべての API 論理パーティション キーの統計情報を、パーティション キーの推定ストレージ サイズ (KB) を示すことにより、ログ記録します。 この表は、ストレージ スキューをトラブルシューティングするときに便利です。 この PartitionKeyStatistics ログは、次の条件に該当する場合にのみ出力されます。1. 物理パーティション内のドキュメントの少なくとも 1% が同じ論理パーティション キーを持っている。 2. 物理パーティション内のすべてのキーのうち、ストレージ サイズが最も大きい上位 3 つのキーが PartitionKeyStatistics ログによってキャプチャされる。 前の条件が満たされていない場合、パーティション キーの統計データは使用できません。 アカウントで上記の条件が満たされていなくても問題ありません。通常、これは論理パーティションのストレージ スキューがないことを示しています。 : パーティション キーの推定サイズは、物理パーティション内のドキュメントが概ね同じサイズであると想定するサンプリング アプローチを使用して計算されます。 物理パーティション内のドキュメントのサイズが均一でない場合、パーティション キーの推定サイズが正確でなくなる可能性があります。 subscriptionIdregionNamepartitionKey, sizeKB
    PartitionKeyRUConsumption NoSQL 用 API または Apache Gremlin 用 API パーティション キーの RU (秒単位) の合計消費量をログに記録します。 この表は、ホット パーティションのトラブルシューティングで役立ちます。 現在、Azure Cosmos DB では、NoSQL 用 API アカウントの場合にのみ、ポイントの読み取りまたは書き込み、クエリとストアド プロシージャ操作について、パーティション キーが報告されます。 subscriptionIdregionNamepartitionKeyrequestChargepartitionKeyRangeId
    ControlPlaneRequests すべての API アカウントの作成、リージョンの追加または削除、アカウントのレプリケーション設定の更新など、コントロール プレーンの操作に関する詳細をログに記録します。 operationNamehttpstatusCodehttpMethod, region
    TableApiRequests Table 用 API Azure Cosmos DB for Table への要求を処理するために、ユーザーがフロントエンドから開始した要求をログします。 operationNamerequestChargepiiCommandText
  4. カテゴリの詳細を選択したら、適切な宛先にログを送信します。 Log Analytics ワークスペースにログを送信する場合は、[対象テーブル] で [リソース固有] を選択してください。

    Screenshot of the option to enable resource-specific diagnostics.

クエリ テキストをログに記録するためにフルテキスト クエリを有効にする

Note

この機能を有効にすると、追加のログ コストが発生することがあります。料金の詳細については「Azure Monitor の価格」を参照してください。 トラブルシューティングを行った後に、この機能を無効にすることをお勧めします。

Azure Cosmos DB では、詳細なトラブルシューティングのために機能拡張されたログ記録が提供されます。 フルテキスト クエリを有効にすると、Azure Cosmos DB アカウント内のすべての要求で、難読化解除されたクエリを表示できます。 また、ログ内のこのデータにアクセスして表示するためのアクセス許可を Azure Cosmos DB に付与します。

  1. この機能を有効にするには、Azure Cosmos DB アカウントの [Features] ページに移動します。

    Screenshot of the navigation process to the Features page.

  2. [Enable] を選択します。 この設定は数分以内に適用されます。 新しく取り込まれるすべてのログには、要求ごとにフルテキストまたは PIICommand テキストが含まれています。

    Screenshot of the full-text feature being enabled.

クエリ データ

新たに有効になったこれらの機能を使用してクエリを実行する方法については、次を参照してください。

次のステップ