メトリックを使用した Azure Data Explorer のパフォーマンス、正常性、および使用状況の監視
Azure Data Explorer のメトリックは、Azure Data Explorer クラスター リソースの正常性とパフォーマンスに関する主要な指標を提供します。 この記事で詳細に説明するメトリックを使用して、特定のシナリオでの Azure Data Explorer クラスターの使用状況、正常性、パフォーマンスをスタンドアロン メトリックとして監視します。 また、Azure ダッシュボード と Azure アラート の操作の基本としてメトリックを使用できます。
Azure メトリックス エクスプローラーの詳細については、メトリックス エクスプローラーに関する記事を参照してください。
前提条件
- Azure サブスクリプション。 無料の Azure アカウントを作成します。
- Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
メトリックを使用して Azure Data Explorer のリソースを監視する
- Azure portal にサインインします。
- Azure Data Explorer クラスターの左側のペインで、「メトリック」を検索します。
- [メトリック] を選択して [メトリック] ペインを開き、クラスターの分析を開始します。
[メトリック] ペインで作業する
[メトリック] ペインで、追跡する特定のメトリックを選択し、データを集計する方法を選択して、ダッシュボードに表示するメトリック グラフを作成します。
Azure Data Explorer クラスターの [リソース] と [メトリック名前空間] は事前に選択されています。 次の図の中の番号は、その下の番号付きリストに対応しています。 これらは、メトリックの設定と表示に関するさまざまなオプションについて説明します。
- メトリック グラフを作成するには、メトリック名と、メトリックあたりの適切な集計を選択します。 さまざまなメトリックの詳細については、「サポートされている Azure Data Explorer メトリック」を参照してください。
- 同じグラフにプロットされた複数のメトリックを表示する場合は、[メトリックの追加] を選択します。
- 1 つのビューに複数のグラフを表示する場合は、[+ New chart]\(+ 新規グラフ\) を選択します。
- 時間範囲を変更する場合は、時刻の選択ツールを使用します (既定: 過去 24 時間)。
- ディメンションを持つメトリックには、[フィルターの追加] および [Apply Splitting]\(分割の適用\) を使用します。
- グラフ構成をダッシュボードに追加して、再度表示できるようにする場合は、[ダッシュボードにピン留めする] を選択します。
- 設定した条件を使用してメトリックを視覚化するには、[新しいアラート ルール] を設定します。 新しいアラート ルールにはターゲット リソース、メトリック、分割、およびグラフからのフィルター ディメンションが含まれます。 これらの設定は、アラート ルールの作成ウィンドウで変更します。
サポートされている Azure Data Explorer メトリック
Azure Data Explorer のメトリックを使用すると、リソースの全体的なパフォーマンスと使用の両方に関する分析情報、およびインジェストやクエリなどの特定のアクションに関する情報を得ることができます。 この記事のメトリックは、使用法の種類別にグループ化されています。
メトリックの種類には、以下のものがあります。
Azure Data Explorer 用の Azure Monitor のメトリックのアルファベット順一覧については、サポートされる Azure Data Explorer クラスターのメトリックに関する記事を参照してください。
クラスターのメトリック
クラスターのメトリックは、クラスターの全般的な正常性を追跡します。 たとえば、リソースとインジェストの使用と応答性があります。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
キャッシュ使用率 (非推奨) | パーセント | Avg、Max、Min | クラスターで現在使用されている割り当て済みキャッシュ リソースの割合。 キャッシュとは、定義されているキャッシュ ポリシーに従ってユーザー アクティビティに割り当てられた SSD のサイズのことです。 80% 以下の平均キャッシュ使用率が、クラスターにとって持続可能な状態です。 平均キャッシュ使用率が 80% を超える場合、クラスターは次のようになります スケールアップするか、より多くのインスタンスに より多くのインスタンスにスケールアウトします。 あるいは、キャッシュ ポリシーを調整して、キャッシュに格納する日数を減らします。 キャッシュ使用率が 100% を超える場合、キャッシュされるデータのサイズが、クラスター上の合計キャッシュ サイズを超えています。 このメトリックは非推奨となっており、後方互換対応のために提供されています。 代わりに、"キャッシュ使用率係数" メトリックを使用してください。 |
なし |
キャッシュ使用率 | パーセント | Avg、Max、Min | クラスター内のホット キャッシュ専用の使用率ディスク領域の割合。 100% は、ホット データに割り当てられたディスク領域が最適に利用されていることを意味します。 アクションは必要なく、クラスターは全く問題ありません。 100% 未満は、ホット データに割り当てられたディスク領域が十分に使用されていないことを意味します。 100% を超える場合は、クラスターのディスク領域が、キャッシュ ポリシーで定義されているホット データを収容するのに十分な大きさではないことを意味します。 すべてのホット データに十分な領域を確保するには、ホット データの量を減らすか、クラスターをスケールアウトする必要があります。自動スケールを有効にすることをお勧めします。 |
なし |
CPU | Percent | Avg、Max、Min | クラスター内のマシンによって現在使用されている割り当て済みコンピューティング リソースの割合。 80% 以下の平均 CPU 使用率が、クラスターにとって持続可能です。 CPU の最大値は 100% であり、これは、データを処理する計算リソースがそれ以上ないことを示します。 クラスターのパフォーマンスが良くない場合は、特定の CPU がブロックされていないか判別するために、CPU の最大値を確認してください。 |
なし |
インジェストの使用率 | パーセント | Avg、Max、Min | 取り込みを実行するために容量ポリシーで割り当てられたリソースの合計からデータを取り込むのに使用される実際のリソースの割合。 既定の容量ポリシーでは、同時実行のインジェスト操作は 512 以下、またはインジェストに使用されるクラスター リソースは 75% 以下です。 80% 以下の平均インジェスト使用率が、クラスターにとって持続可能な状態です。 インジェスト使用率の最大値は 100% であり、これは、すべてのクラスター インジェスト機能が使用され、インジェストがキューに入れられる結果となる可能性を示します。 |
なし |
InstanceCount | カウント | Avg | インスタンスの合計数。 | |
キープ アライブ | カウント | Avg | クラスターの応答性を追跡します。 応答性の高いクラスターは 1 の値を返し、ブロックまたは切断されたクラスターは 0 を返します。 |
|
スロットルされたコマンドの合計数 | カウント | Avg、Max、Min、Sum | 同時 (並列) コマンドの最大許容数に達したために、クラスター内でスロットルされた (拒否された) コマンドの数。 | なし |
エクステントの合計数 | カウント | Avg、Max、Min、Sum | クラスター内のデータ エクステントの合計数。 データ エクステントのマージは CPU 負荷が高いアクティビティであるため、このメトリックの変化は、データ構造の大幅な変更とクラスターでの高負荷を示している可能性があります。 |
なし |
フォロワーの待機時間 | Milliseconds | Avg、Max、Min | フォロワー データベースには、リーダー データベースの変更が同期されます。 この同期により、データが利用可能になるまでに数秒から数分のデータ遅延が発生します。 このメトリックは、タイム ラグの長さを測定します。 タイム ラグは、リーダーに取り込まれたデータの全体的なサイズと速度、フォローされているデータベースの数、リーダーに対して実行された内部操作 (マージ/リビルド操作) の速度など、いくつかの要因に依存します。 これはクラスター レベルのメトリックです。フォロワーは、フォローされているすべてのデータベースのメタデータをキャッチします。 このメトリックは、このプロセスの待機時間を表します。 |
なし |
メトリックのエクスポート
エクスポートのメトリックは、エクスポート操作の全般的な正常性とパフォーマンス (遅延、結果、レコード数、使用状況など) を追跡します。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
連続エクスポートによるエクスポートされたレコード数 | Count | 合計 | すべての連続エクスポート ジョブでエクスポートされたレコードの数。 | ContinuousExportName |
連続エクスポートの最大遅延 | カウント | Max | クラスター内の連続エクスポート ジョブによって報告された遅延 (分単位)。 | なし |
保留中の連続エクスポートの数 | カウント | Max | 保留中の連続エクスポート ジョブの数。 これらのジョブは実行する準備ができていますが、キューで待機中になっています。これは、容量不足が原因である可能性があります。 | |
連続エクスポートの結果 | Count | Count | 各連続エクスポート実行の失敗および成功の結果。 | ContinuousExportName |
エクスポート使用率 | パーセント | Max | クラスター内の合計エクスポート容量 (0 から 100 の間) のうち、使用されたエクスポート容量。 | なし |
インジェストのメトリック
インジェストのメトリックは、インジェスト操作の全般的な正常性とパフォーマンス (待機時間、結果、量など) を追跡します。 分析を調整するには、次のようにします。
- グラフにフィルターを適用して、ディメンション別に部分的なデータをプロットします。 たとえば、特定の
Database
へのインジェストを調べます。 - グラフに分割を適用して、各種コンポーネント別にデータを視覚化します。 このプロセスは、
Blobs received
など、インジェスト パイプラインの各ステップによって報告されるメトリックを分析するのに役立ちます。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
Batch blob count (バッチ BLOB 数) | カウント | Avg、Max、Min | インジェストのために完了したバッチ内のデータ ソースの数。 | データベース |
Batch duration (バッチ期間) | 秒 | Avg、Max、Min | インジェスト フロー内のバッチ処理フェーズの期間。 | データベース |
バッチ サイズ | バイト | Avg、Max、Min | インジェスト用の集計バッチ内の圧縮されていない予想されるデータ サイズ。 | データベース |
Batches processed (処理されたバッチ) | カウント | Sum、Max、Min | インジェストのために完了したバッチの数。 Batching Type : バッチを封印するためのトリガー。 バッチ処理の種類の完全な一覧については、バッチ処理の種類に関する記事を参照してください。 |
データベース、バッチ処理の種類 |
Blobs received (受信した BLOB) | カウント | Sum、Max、Min | コンポーネントによって入力ストリームから受信された BLOB の数。 [apply splitting]\(分割の適用\) を使用して各コンポーネントを分析します。 |
データベース、コンポーネントの種類、コンポーネント名 |
Blobs processed (処理された BLOB) | カウント | Sum、Max、Min | コンポーネントによって処理された BLOB の数。 [apply splitting]\(分割の適用\) を使用して各コンポーネントを分析します。 |
データベース、コンポーネントの種類、コンポーネント名 |
Blobs dropped (破棄された BLOB) | カウント | Sum、Max、Min | コンポーネントによって完全に削除された BLOB の数。 このような BLOB ごとに、エラーの理由を含む Ingestion result メトリックが送信されます。 [apply splitting]\(分割の適用\) を使用して各コンポーネントを分析します。 |
データベース、コンポーネントの種類、コンポーネント名 |
検出の待機時間 | 秒 | Avg | データのエンキューから、データ接続によって検出されるまでの時間。 この時間は、Stage latency (ステージの待機時間) および Ingestion latency (インジェストの待ち時間) のメトリックには含まれません。 検出の待機時間は、次の状況で増加する可能性があります。
|
コンポーネントの種類、コンポーネント名 |
Events received (受信したイベント) | カウント | Sum、Max、Min | 入力ストリームからデータ接続によって受信されたイベントの数。 | コンポーネントの種類、コンポーネント名 |
Events processed (処理されたイベント) | カウント | Sum、Max、Min | データ接続によって処理されたイベントの数。 | コンポーネントの種類、コンポーネント名 |
Events dropped (破棄されたイベント) | カウント | Sum、Max、Min | データ接続によって完全に破棄されたイベントの数。 このようなイベントごとに、エラーの理由を含む Ingestion result メトリックが送信されます。 |
コンポーネントの種類、コンポーネント名 |
インジェストの待ち時間 | 秒 | Avg、Max、Min | クラスターでデータを受信してからクエリの準備ができるまで、取り込まれたデータの待機時間。 インジェストの待ち時間の長さは、インジェストのシナリオに応じて異なります。Ingestion Kind : ストリーミング インジェストまたはキューによるインジェスト |
インジェストの種類 |
インジェストの結果 | Count | 合計 | 取り込みに失敗したか成功したソースの合計数。Status : 取り込みが成功した場合は [成功]、失敗した場合は失敗のカテゴリ。 考えられる失敗のカテゴリの完全な一覧については、「Azure Data Explorer のインジェスト エラー コード」を参照してください。 Failure Status Type : 失敗が永続的か一時的か。 インジェストが成功した場合、このディメンションは None です。注:
|
状態、失敗の状態の種類 |
インジェストの量 (バイト単位) | カウント | Max、Sum | 圧縮前にクラスターにインジェストされたデータの合計サイズ (バイト単位)。 | データベース |
キューの長さ | カウント | Avg | コンポーネントの入力キュー内の保留中のメッセージの数。 バッチ処理マネージャー コンポーネントには、BLOB ごとに 1 つのメッセージがあります。 インジェスト マネージャー コンポーネントには、バッチごとに 1 つのメッセージがあります。 バッチは、1 つ以上の BLOB を持つ 1 つのインジェスト コマンドです。 | コンポーネントの種類 |
Queue oldest message (キューの最も古いメッセージ) | 秒 | Avg | コンポーネントの入力キュー内の最も古いメッセージが挿入された時刻 (秒)。 | コンポーネントの種類 |
Received data size bytes (受信したデータ サイズ (バイト単位)) | バイト | Avg、Sum | 入力ストリームからデータ接続によって受信されるデータのサイズ。 | コンポーネントの種類、コンポーネント名 |
ステージの待機時間 | 秒 | Avg | メッセージが Azure Data Explorer によって受け入れられるときから、処理のためにインジェスト コンポーネントがそのコンテンツを受信するまでの時間。 [フィルターを適用する] を使用し、[コンポーネントの種類] > [StorageEngine] を選択して、インジェストの合計待機時間を表示します。 |
データベース、コンポーネントの種類 |
ストリーミング インジェスト メトリック
ストリーミング インジェスト メトリックは、ストリーミング インジェスト データおよび要求率、期間、結果を追跡します。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
ストリーミング インジェストのデータ速度 | カウント | RateRequestsPerSecond | クラスターに取り込まれたデータの合計ボリューム。 | なし |
ストリーミング インジェストの期間 | Milliseconds | Avg、Max、Min | すべてのストリーミング インジェスト要求の合計期間。 | なし |
ストリーミング インジェストの要求率 | カウント | Count、Avg、Max、Min、Sum | ストリーミング インジェスト要求の合計数。 | なし |
ストリーミング インジェストの結果 | カウント | Avg | 結果の種類別のストリーミング インジェスト要求の合計数。 | 結果 |
クエリのメトリック
クエリ パフォーマンス メトリックは、クエリ期間および同時クエリまたはスロットルされたクエリの合計数を追跡します。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
クエリ実行時間 | Milliseconds | Avg、Min、Max、Sum | クエリ結果を受信するまでの合計時間 (ネットワーク待機時間は含まれません)。 | QueryStatus |
QueryResult | カウント | Count | クエリの合計数。 | QueryStatus |
同時クエリの合計数 | カウント | Avg、Max、Min、Sum | クラスターで並列実行されるクエリの数。 このメトリックは、クラスターの負荷を見積もるのに適した方法です。 | なし |
スロットルされたクエリの合計数 | カウント | Avg、Max、Min、Sum | クラスター内のスロットルされた (拒否された) クエリの数。 許可される同時 (並列) クエリの最大数は、要求レート制限ポリシーで定義されます。 | なし |
弱一貫性の待機時間 | Milliseconds | Avg、Max、Min | 弱い整合性サービスを実行しているノードによって使用されるメタデータ スナップショットの有効期間。 | データベース、ノード |
具体化されたビューのメトリック
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
MaterializedViewHealth | 1、0 | Avg | ビューが正常と見なされる場合、値は 1、それ以外の場合は 0 です。 | Database、MaterializedViewName |
MaterializedViewAgeSeconds | 秒 | Avg | ビューの age は、現在の時刻から、ビューによって処理された最後のインジェスト時間を引いた値で定義されます。 メトリック値は秒単位の時間です (値が小さいほど、ビューの "正常性は高い" です)。 |
Database、MaterializedViewName |
MaterializedViewResult | 1 | Avg | メトリックには、最後の具体化サイクルの結果を示す Result ディメンションが含まれています (使用可能な値の詳細については、 MaterializedViewResult メトリック を参照してください)。 メトリック値は常に 1 です。 |
Database、MaterializedViewName、Result |
MaterializedViewRecordsInDelta | レコード数 | Avg | ソース テーブルの処理されていない部分に現在あるレコードの数。 詳細については、「具体化されたビューのしくみ」を参照してください | Database、MaterializedViewName |
MaterializedViewExtentsRebuild | エクステント数 | Avg | 具体化サイクルで更新が必要なエクステントの数。 | Database、MaterializedViewName |
MaterializedViewDataLoss | 1 | Max | このメトリックは、未処理のソース データがリテンション期間に近づいているときに発生します。 具体化されたビューが異常であることを示します。 | Database、MaterializedViewName、Kind |
メトリックのパーティション分割
パーティション分割メトリックは、 パーティションポリシーを持つテーブルのパーティション分割プロセスを監視。
メトリック | 単位 | 集約 | メトリックの説明 | Dimensions |
---|---|---|---|---|
PartitioningPercentage | パーセント | 平均、最小、最大 | レコードの合計数に対してパーティション分割されたレコードの割合。 | Database、Table |
PartitioningPercentageHot | パーセント | 平均、最小、最大 | レコードの合計数に関連してパーティション分割されたレコードの割合 ("ホット" キャッシュのみ)。 | Database、Table |
ProcessedPartitionedRecords | パーセント | Avg、Min、Max、Sum | 測定された時間枠でパーティション分割されたレコードの数。 | Database、Table |