データ収集ルールによるメトリック エクスポート (プレビュー)
データ収集ルール (DCR) は、Azure リソースから監視データを収集するために使用されます。 データ収集シナリオの一覧については、データ収集ルールの概要に関する記事を参照してください。 DCR を使用してプラットフォーム メトリックを収集およびエクスポートできるようになりました。
現在、プラットフォーム メトリックは、DCR と診断設定の両方を使用して収集できます。 DCR を使用したメトリック エクスポートをサポートするリソースは増え続けています。 サポートするリソースの一覧については、「サポートされるリソースとリージョン」を参照してください。
DCR を使用してメトリックをエクスポートすることは、診断設定と比較して次の利点があります。
- DCR 構成を使用すると、ディメンションを含むメトリックをエクスポートできます。
- DCR 構成を使用すると、メトリック名に基づいてフィルター処理できるため、必要なメトリックのみをエクスポートできます。
- DCR は、診断設定と比較して、より柔軟でスケーラブルです。
- DCR のエンド ツー エンドの待機時間は 3 分以内です。 これは、メトリック エクスポート待機時間が 6 分から 10 分である診断設定と比べて大幅に優れています。
メトリック データを連続エクスポートするには、DCR を介したメトリック エクスポートを使用してください。 履歴データのクエリを実行するには、データ プレーン メトリック バッチ API を使用します。 2 つのサービスの比較については、「データ プレーン メトリック バッチ API クエリとメトリック エクスポート」を参照してください。
REST API、Azure CLI、または Azure PowerShell を使用してメトリックの DCR を作成します。 メトリック エクスポート用の DCR を作成する方法については、メトリックのデータ収集ルールの作成に関する記事を参照してください。
DCR を作成するときは、データ収集ルールの関連付け (DCRA) を作成して、DCR を監視対象のリソースに関連付ける必要があります。 多くのリソースの種類に対して 1 つの DCR を作成できます。 DCRA の作成方法については、データ収集ルールの関連付けの作成に関する記事を参照してください。 Azure portal を使用すると、DCRA が自動的に作成されます。
Note
DCR と診断設定を同時に使用できます。 DCR を使用する場合は、重複したデータ収集を避けるためにメトリックの診断設定を無効にすることをお勧めします。
エクスポート先
メトリックは、DCR ごとに次のいずれかの宛先にエクスポートできます。
Log Analytics ワークスペース。
Log Analytics ワークスペースへのエクスポートは、リージョンをまたいで行うことができます。 Log Analytics ワークスペースと DCR は同じリージョンに存在する必要がありますが、任意のリージョンにあるリソースを監視できます。 Log Analytics ワークスペースに送信されたメトリックは、AzureMetricsV2
テーブルに格納されます。Azure ストレージ アカウント。
ストレージ アカウント、DCR、監視対象のリソースはすべて同じリージョンに存在する必要があります。Event Hubs。
Event Hubs、DCR、監視対象のリソースはすべて同じリージョンに存在する必要があります。
各宛先のデータのサンプルについては、「エクスポートされるデータ」を参照してください。
Note
メトリック エクスポートにかかる待機時間は約 3 分です。 初期セットアップ後、宛先にメトリックが表示され始めるまでに最長 15 分かかります。
制限事項
メトリック エクスポート用 DCR には次の制限があります。
- DCR ごとに指定できる宛先の種類は 1 つだけです。
- 最大 5 つの DCR を 1 つの Azure リソースに関連付けることができます。
サポートされているリソースとリージョン
次のリソースは、データ収集ルールを使用したメトリック エクスポートをサポートしています。
リソースの種類 | ストリームの仕様 |
---|---|
仮想マシン スケール セット | Microsoft.compute/virtualmachinescalesets |
仮想マシン | Microsoft.compute/virtualmachines |
Redis Cache | Microsoft.cache/redis |
IoT ハブ | Microsoft.devices/iothubs |
キー コンテナー | Microsoft.keyvault/vaults |
ストレージ アカウント | Microsoft.storage/storageaccounts Microsoft.storage/Storageaccounts/blobservices Microsoft.storage/storageaccounts/fileservices Microsoft.storage/storageaccounts/queueservices Microsoft.storage/storageaccounts/tableservices |
SQL Server | Microsoft.sql/servers Microsoft.sql/servers/databases |
Operational Insights | Microsoft.operationalinsights/workspaces |
Media Services | Microsoft.media/mediaservices Microsoft.media/mediaservices/streamingendpoints Microsoft.media/mediaservices/liveevents |
データ保護 | Microsoft.dataprotection/backupvaults |
Azure Kubernetes Service | Microsoft.ContainerService/managedClusters |
サポートされているリージョン
メトリック エクスポート用 DCR は任意のリージョンに作成できますが、メトリック エクスポート元のリソースは次のいずれかのリージョンに存在する必要があります。
- オーストラリア東部
- 米国中部
- CentralUsEuap
- 米国中南部
- 米国東部
- 米国東部 2
- Eastus2Euap
- 米国西部
- 米国西部 2
- 北ヨーロッパ
- 西ヨーロッパ
- 英国南部
DCR の仕様
データ収集ルールは JSON オブジェクトで定義されます。 メトリック エクスポート用 DCR を作成するには、次のプロパティが必要です。
プロパティ | 説明 |
---|---|
dataSources.platformTelemetry.streams |
リソースの種類とメトリックを一覧表示します。 リソースのすべてのメトリックを収集するために Metrics-Group-All を指定するか、個々のメトリックを指定します。 形式: <resource type>:Metrics-Group-All | <metric name> たとえば、 Microsoft.Compute/virtualMachines:Percentage CPU のように指定します。 |
dataSources.platformTelemetry.name |
データ ソースの名前。 |
destinations |
メトリックの宛先。 DCR ごとにサポートされる宛先は 1 つだけです。 有効な宛先の種類: storageAccounts logAnalytics eventHubs |
dataflows.streams |
宛先に渡すストリームの一覧の形式: <resource type>:Metrics-Group-All |<metric name> たとえば、"Microsoft.Compute/virtualMachines:Percentage CPU" です |
dataflows.destinations |
destinations プロパティの定義に従ってストリームを渡す宛先。 |
identity.type |
DCR に使用する ID の種類。 ストレージ アカウントの宛先には必須です。 有効な値: systemAssigned userAssigned |
kind |
データ収集ルールの種類。 メトリック エクスポートの場合は PlatformTelemetry に設定します。 |
location |
DCR の場所。 |
Note
DCR ごとに指定できる宛先の種類は 1 つだけです。
メトリック エクスポート DCR の JSON 形式
メトリック エクスポート用の DCR を作成するには、次の汎用 JSON オブジェクトの形式を使用します。 この例をコピーする場合、不要な宛先を削除してください。
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
// a list of resource types and metrics to collect metrics from
"<resourcetype>:<metric name> | Metrics-Group-All",
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"name": "<data sources name>"
}
]
},
"destinations": {
// Choose a single destination type of either logAnalytics, storageAccounts, or eventHubs
"logAnalytics": [
{
"workspaceResourceId": "workspace Id",
"name": "<destination name>"
}
],
"storageAccounts": [
{
"storageAccountResourceId": "<storage account Id>",
"containerName": "<container name>",
"name": "<destination name>"
}
],
"eventHubs": [
{
"eventHubResourceId": "event hub id",
"name": "<destination name>"
}
], },
"dataFlows": [
{
"streams": [
// a list of resource types and metrics to pass to the destination
"<resourcetype>:<metric name> | Metrics-Group-All",
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"destinations": [
"<destination name>"
]
}
]
},
// identity is required for Storage Account and Event Hubs destinations
"identity": {
"type": "userassigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DRCIdentity": {}
}
},
"kind": "PlatformTelemetry",
"location": "eastus"
}
Note
CLI を使用してメトリック エクスポート用 DCR を作成する場合、kind
、location
、identity
は引数として渡されるため、JSON オブジェクトから削除する必要があります。
ユーザーおよびシステム割り当て ID
DCR の作成時には、ユーザーとシステムの両方の割り当て ID がサポートされています。 ストレージ アカウントと Event Hubs の宛先には ID が必要です。 システム割り当てまたはユーザー割り当ての ID を使用できます。 詳細については、「Azure ロールをマネージド ID に割り当てる」を参照してください。
システム割り当て ID を使用するには、次のように identity
オブジェクトを追加します。
"identity": {
"type": "systemAssigned"
},
ユーザー割り当て ID を使用するには、次のように identity
オブジェクトを追加します。
"identity": {
"type": "userassigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity name>": {}
}
}
メトリックのフィルター処理
エクスポートするメトリックを指定する場合、名前でメトリックをフィルター処理するか、Metrics-Group-All
を使用してすべてのメトリックを要求することができます。 サポートされているメトリックの一覧については、「リソースの種類別にサポートされているメトリックとログ カテゴリ」を参照してください。
同じリソースの種類からの複数のメトリックを指定するには、メトリックごとに個別のストリーム項目を作成します。
次の例は、メトリックを名前でフィルター処理する方法を示しています。
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Percentage CPU",
"Microsoft.Cache/redis:Cache Hits"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/arg-001/providers/microsoft.operationalinsights/workspaces/loganalyticsworkspace001",
"name": "destinationName"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Percentage CPU",
"Microsoft.Cache/redis:Cache Hits"
],
"destinations": [
"destinationName"
]
}
]
},
"kind": "PlatformTelemetry",
"location": "eastus"
}
メトリック エクスポート JSON オブジェクトのサンプル
次の例は、各宛先の種類へのメトリック エクスポートに使用するサンプル DCR JSON オブジェクトを示しています。
Log Analytics ワークスペース
次の例は、仮想マシン、仮想マシン スケール セット、すべてのキー コンテナー メトリックから Log Analytics ワークスペースに特定のメトリックを送信するというメトリックのデータ収集ルールを示しています。
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Available Memory Bytes",
"Microsoft.KeyVault/vaults:Metrics-Group-All"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-001/providers/microsoft.operationalinsights/workspaces/laworkspace001",
"name": "ladestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Available Memory Bytes",
"Microsoft.KeyVault/vaults:Metrics-Group-All"
],
"destinations": [
"ladestination"
]
}
]
},
"kind": "PlatformTelemetry",
"location": "centralus"
}
メトリック エクスポート用の DCR を作成する
メトリック エクスポート用の DCR を作成するには、Azure portal、CLI、PowerShell、REST API、または ARM テンプレートを使用します。 詳細については、Azure Monitor でのデータ収集ルール (DCR) と関連付けの作成と編集に関する記事を参照してください。
エクスポートされるデータ
次の例は、各宛先にエクスポートされるデータを示しています。
Log Analytics ワークスペース
Log Analytics ワークスペースにエクスポートされたデータは、Log Analytics ワークスペースの AzureMetricsV2
テーブルに次の形式で格納されます。
列 | タイプ | 説明 |
---|---|---|
Average | real | 時間の範囲内で収集される平均値。 |
_BilledSize | real | レコード サイズ (バイト単位) |
カウント | real | 時間の範囲内で収集されるサンプル数。 |
ディメンション | 動的 | メトリックに関連付けられたディメンション (JSON 形式)。 |
_IsBillable | string | データ インジェストが課金対象かどうかを指定します。 _IsBillable が false の場合、インジェストはお使いの Azure アカウントに課金されません |
最大値 | real | 時間の範囲内で収集される最大値。 |
MetricCategory | string | メトリックのカテゴリ名。 |
MetricName | string | メトリックの表示名。 |
MetricResourceType | string | メトリックを報告する Azure リソースのリソースの種類。 |
最小値 | real | 時間の範囲内で収集される最小値。 |
_ResourceId | string | レコードが関連付けられているリソースの一意識別子 |
SourceSystem | string | イベント収集元のエージェントの種類。 たとえば、Windows エージェントの場合は OpsManager (直接接続または Operations Manager のいずれか)、すべての Linux エージェントの場合は Linux 、Azure Diagnostics の場合は Azure です |
_SubscriptionId | string | レコードが関連付けられているサブスクリプションの一意識別子 |
TenantId | string | Log Analytics ワークスペース ID |
TimeGenerated | datetime | レコードが生成されたときのタイムスタンプ (UTC)。 |
TimeGrain | string | メトリックの期間粒度。 |
トータル | real | 時間の範囲に含まれるすべての値の合計。 |
種類 | string | テーブルの名前 |
UnitName | string | メトリックの単位。 |
次に例を示します。
ストレージ アカウント
次の例は、ストレージ アカウントにエクスポートされたデータを示しています。
{
"Average": "31.5",
"Count": "2",
"Maximum": "52",
"Minimum": "11",
"Total": "63",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-dcrs/providers/microsoft.keyvault/vaults/dcr-vault",
"time": "2024-08-20T14:13:00.0000000Z",
"unit": "MilliSeconds",
"metricName": "ServiceApiLatency",
"timeGrain": "PT1M",
"dimension": {
"ActivityName": "vaultget",
"ActivityType": "vault",
"StatusCode": "200",
"StatusCodeClass": "2xx"
}
}
Event Hubs
次の例は、Event Hubs にエクスポートされたメトリックを示しています。
{
"Average": "1",
"Count": "1",
"Maximum": "1",
"Minimum": "1",
"Total": "1",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-dcrs/providers/microsoft.keyvault/vaults/dcr-vault",
"time": "2024-08-22T13:43:00.0000000Z",
"unit": "Count",
"metricName": "ServiceApiHit",
"timeGrain": "PT1M",
"dimension": {
"ActivityName": "keycreate",
"ActivityType": "key"
},
"EventProcessedUtcTime": "2024-08-22T13:49:17.1233030Z",
"PartitionId": 0,
"EventEnqueuedUtcTime": "2024-08-22T13:46:04.5570000Z"
}