データ収集ルールによるメトリック エクスポート (プレビュー)

データ収集ルール (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 を作成する場合、kindlocationidentity は引数として渡されるため、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 メトリックの単位。

次に例を示します。

AzureMetricsV2 テーブルのログ分析クエリのスクリーンショット。

ストレージ アカウント

次の例は、ストレージ アカウントにエクスポートされたデータを示しています。

{
    "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"
    }

次のステップ