概要
-
Azure CosmosDB の監視方法には以下の 2 通りがある。ここではそれぞれについて調査した。
-
Azure Monitor を使用した Azure CosmosDB の監視では、「メトリックを使用した監視」と「診断ログを使用した監視」が可能
-
Azure Monitor for Azure CosmosDB と呼ばれる、比較的新しい監視方法が提供され、すべての Azure CosmosDB リソースの全体的なパフォーマンスなどを統合された対話型エクスペリエンスで表示可能
-
Azure Monitor のメトリックを使用した監視
-
Azure Monitor からダッシュボードを作成し、Azure CosmosDB のアカウントメトリックを監視可能(既定では特に構成準備などは必要なし)
-
監視されるメトリックは 1 分単位で収集され、保有期間は 30 日間
-
オプション「Azure CosmosDB ポータルからの監視」で使用できるメトリックの多くはここでも使用可能
-
メトリックのディメンション値(コンテナー名)などは大文字と小文字を区別しないため、命名には注意。
-
詳細は「メトリックデータの分析」を参照
Azure Monitor の診断ログを使用した監視
-
Azure Monitor からダッシュボードを作成し、Azure CosmosDB アカウントのログを監視可能
-
1 秒単位で発生するイベントやとれーすなどのテレメトリは、ログとして格納される(コンテナのスループットが変化した場合、CosmosDB アカウントのプロパティが変更され、これらのイベントがログ内でキャプチャされる)
-
収集したデータに対してクエリを実行することでログ分析可能
-
詳細は「ログデータの分析」を参照
※ 補足情報
Azure CosmosDB ポータルからの監視
-
Azure Cosmos の[メトリック]タブ内で使用可能なメトリックを使用して監視可能
-
メトリックの保有期間は 7 日間(規定)
-
詳細は「Azure Cosmos DB ポータルから収集したデータの監視」を参照
SDK を使用したプログラムによる監視
- NET、Java、Python、Node.js SDK、および REST API のヘッダーを使用して、Azure Cosmos アカウントをプログラムによって監視可能
Azure CosmosDB のメトリックデータの分析
Azure Monitor のメニューから[Metrics]を開き、メトリックスエクスプローラを使用して、Azure CosmosDB のメトリックスを分析することが可能(詳細は「Azure メトリックスエクスプローラの概要)。
以下のディメンションをこれらのメトリックと共に使用可能。
- CollectionName
- DatabaseName
- OperationType
- リージョン
- StatusCode
Azure CosmosDB の操作レベルのメトリックを表示する
-
Azure Portal にログイン。
-
左側のナビゲーションバーから[監視]を選択し、[メトリック]を選択する。
-
[メトリック] ウィンドウから、 [リソースの選択] を選択し、必要な サブスクリプション と リソース グループ を選択する。その後、 [リソースの種類] で、 [Azure Cosmos DB accounts](Azure Cosmos DB アカウント) を選択し、既存の Azure Cosmos アカウントの一つを選択し、 [適用] を選択します。
メトリックにフィルターを追加する
メトリックと特定の CollectionName などのグラフをフィルターすることができる。
フィルターを適用するには、[フィルターの追加]を選択し、必要なプロパティ(ここでは OperationType) を選択し、Query などの値を選択する。
[Apply splitting]オプションを使用すると、メトリックをグループ化できる。例として、要求ユニットを操作の種類ごとにグループ化し、すべての操作のグラフを一度に表示することが可能。
ログデータの分析
Azure Monitor のログデータはテーブルに格納され、各テーブルには独自の一位のプロパティセットがある。Azure CosmosDB は次のテーブルにデータを格納する。
テーブル | 説明 |
---|---|
AzureDiagnostics | リソースログを格納するための共通テーブル。CosmosDB のリソースログはMICROSOFT.DOCUMENTDB で識別可能 |
AzureActivity | アクティビティログのすべてのレコードを格納する共通テーブル |
Azure Cosmos DB のメニューから [ログ] を選択すると、クエリのスコープが現在の Azure Cosmos データベースに設定された状態で Log Analytics が開く。 つまり、ログ クエリには、そのリソースからのデータのみが含まれることになる。 他のデータベースのデータや他の Azure サービスのデータを含むクエリを実行する場合は、 Azure Monitor のメニューから [ログ] を選択する。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照。
Azure Monitor での Azure CosmosDB Log Analitics のクエリ
[ログ検索]検索バーに入力して、Azrue CosmosDB コンテナーの監視に利用できるクエリの例を以下に示す。
指定した期間の Azure CosmosDB のすべての診断ログをクエリする
AzureDiagnostics
| where ResourceProvider=="Microsoft.DocumentDb" and Category=="DataPlaneRequests"
リソースでグループ分けされたすべての操作をクエリする
AzureActivity
| where ResourceProvider=="Microsoft.DocumentDb" and Category=="DataPlaneRequests"
| summarize count() by Resource
リソースでグループ分けわれたすべてのユーザーアクティビティをクエリする
AzureActivity
| where Caller == "test@company.com" and ResourceProvider=="Microsoft.DocumentDb" and Category=="DataPlaneRequests"
| summarize count() by Resource
Azure Monitor for Azure CosmosDB
Azure CosmosDB の監視に関して、比較的新しいサービスがあったため、ここで調査した。
Azure Monitor for Azure Cosmos DB は「Azure Monitor のブック機能」に基づいている。
これは、 CosmosDB のために収集されるのと同じ監視データを使用する。
Azure Monitor は、すべての Azure Cosmos DB リソースの全体的なパフォーマンス、障害、容量、および運用の正常性を、一元的な対話型エクスペリエンスで表示するために使用される。
できること
-
すべてのサブスクリプションの Azure CosmosDB リソースを 1 か所で分析可能
-
関心のあるサブスクリプションとリソースに限定して評価することも可能
-
特定の Azure CosmosDB リソースについて、カテゴリごとに問題を診断・分析可能で、メトリック表示・詳細把握が可能
本機能へのアクセスに対しては料金はかからないが、有効にした Azure Monitor の基本機能に対してのみ課金が発生する。「[Azure Monitor の価格の詳細(https://azure.microsoft.com/pricing/details/monitor/)]」を参照。
Azure CosmosDB の使用率とパフォーマンスのメトリックを表示
主な機能
CosmosDB において、以下の情報を確認することができる。
- CosmosDB の概要
- エラーログ情報
- ストレージ容量情報
- 操作履歴情報