데이터 수집 규칙을 통한 메트릭 내보내기(미리 보기)

DCR(데이터 수집 규칙)은 Azure 리소스에서 모니터링 데이터를 수집하는 데 사용됩니다. 데이터 수집 시나리오 목록은 데이터 수집 규칙 - 개요를 참조하세요. 이제 DCR을 사용하여 플랫폼 메트릭을 수집하고 내보낼 수 있습니다.

현재 플랫폼 메트릭은 DCR과 진단 설정을 모두 사용하여 수집할 수 있습니다. 점점 더 많은 리소스가 DCR을 사용하여 메트릭 내보내기를 지원합니다. 지원 리소스 목록은 지원되는 리소스 및 지역을 참조하세요.

DCR을 사용하여 메트릭을 내보내면 진단 설정에 비해 다음과 같은 이점이 있습니다.

  • DCR 구성을 사용하면 차원을 포함하여 메트릭을 내보낼 수 있습니다.
  • DCR 구성을 사용하면 메트릭 이름을 기준으로 필터링할 수 있으므로 필요한 메트릭만 내보낼 수 있습니다.
  • DCR은 진단 설정에 비해 더 유연하고 확장성이 뛰어납니다.
  • DCR의 엔드투엔드 대기 시간은 3분 이내입니다. 이는 진단 설정에 비해 크게 개선된 것으로, 기존 진단 설정에서는 메트릭 내보내기 대기 시간이 6~10분이었습니다.

DCR을 통한 메트릭 내보내기 기능을 사용하면 메트릭 데이터를 지속적으로 내보낼 수 있습니다. 과거 데이터를 쿼리하려면 데이터 평면 메트릭 일괄 처리 API를 사용합니다. 두 서비스를 비교하려면 데이터 평면 메트릭 일괄 처리 API 쿼리 대 메트릭 내보내기를 참조하세요.

REST API, Azure CLI 또는 Azure PowerShell을 사용하여 메트릭에 대한 DCR을 만듭니다. 메트릭 내보내기에 대한 DCR을 만드는 방법에 대한 자세한 내용은 메트릭에 대한 데이터 수집 규칙 만들기를 참조하세요.

DCR을 만들 때는 모니터링할 리소스와 DCR을 연관시키기 위해 DCRA(데이터 수집 규칙 연결)를 만들어야 합니다. 여러 리소스 종류에 대해 단일 DCR을 만들 수 있습니다. DCRA를 만드는 방법에 대한 자세한 내용은 데이터 수집 규칙 연결 만들기를 참조하세요. Azure Portal을 사용하면 DCRA가 자동으로 만들어집니다.

참고 항목

DCR과 진단 설정을 동시에 사용할 수 있습니다. 중복 데이터 수집을 피하기 위해 DCR을 사용할 때 메트릭에 대한 진단 설정을 사용하지 않도록 설정하는 것이 좋습니다.

내보내기 대상

DCR당 다음 대상 중 하나로 메트릭을 내보낼 수 있습니다.

  • Log Analytics 작업 영역.
    Log Analytics 작업 영역으로 내보내는 작업은 여러 지역으로 이루어질 수 있습니다. Log Analytics 작업 영역과 DCR은 동일한 지역에 있어야 하지만, 모니터링되는 리소스는 어느 지역에나 있을 수 있습니다. 로그 분석 작업 영역으로 전송된 메트릭은 AzureMetricsV2 테이블에 저장됩니다.

  • Azure Storage 계정.
    스토리지 계정, DCR 및 모니터링되는 리소스는 모두 동일한 지역에 있어야 합니다.

  • Event Hubs.
    Event Hubs, DCR 및 모니터링되는 리소스는 모두 동일한 지역에 있어야 합니다.

각 대상의 데이터 샘플은 내보낸 데이터를 참조하세요.

참고 항목

메트릭을 내보내는 데 걸리는 대기 시간은 약 3분입니다. 초기 설정 후 대상에 메트릭이 나타나기까지 최대 15분이 소요됩니다.

제한 사항

메트릭 내보내기에 대한 DCR에는 다음과 같은 제한 사항이 있습니다.

  • DCR당 하나의 대상 유형만 지정할 수 있습니다.
  • 하나의 Azure Resource에 최대 5개의 DCR을 연결할 수 있습니다.

지원되는 리소스 및 지역

다음 리소스는 데이터 수집 규칙을 사용하여 메트릭 내보내기를 지원합니다.

리소스 종류 스트림 사양
Virtual Machine 확장 집합 Microsoft.compute/virtualmachinescalesets
가상 머신 Microsoft.compute/virtualmachines
Redis cache Microsoft.cache/redis
IoT 허브 Microsoft.devices/iothubs
Key Vault 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
미디어 서비스 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당 하나의 대상만 지원됩니다.
유효한 대상 형식:
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의 위치.

참고 항목

DCR당 하나의 대상 유형만 지정할 수 있습니다.

메트릭 내보내기 DCR에 대한 JSON 형식

다음 제네릭 JSON 개체의 형식을 사용하여 메트릭 내보내기용 DCR을 만듭니다. 예제를 복사할 때 원하지 않는 대상을 제거합니다.

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

참고 항목

CLI를 사용하여 메트릭 내보내기용 DCR을 만들 때 kind, location, identity가 인수로 전달되며 JSON 개체에서 제거해야 합니다.

사용자 및 시스템에 할당된 ID

DCR을 만들 때는 사용자와 시스템에 할당된 ID가 모두 지원됩니다. 스토리지 계정 및 Event Hubs 대상에는 ID가 필요합니다. 시스템이 할당한 ID나 사용자가 할당한 ID를 사용할 수 있습니다. 자세한 내용은 관리 ID에 Azure 역할 할당을 참조하세요.

시스템에 할당된 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 만들기

Azure Portal, CLI, PowerShell, REST API 또는 ARM 템플릿을 사용하여 메트릭 내보내기에 대한 DCR을 만듭니다. 자세한 내용은 Azure Monitor에서 DCR(데이터 수집 규칙) 및 연결 만들기 및 편집을 참조하세요.

내보낸 데이터

다음 예에서는 각 대상으로 내보내진 데이터를 보여 줍니다.

Log Analytics 작업 영역

Log Analytics 작업 영역으로 내보낸 데이터는 다음 형식으로 Log Analytics 작업 영역의 AzureMetricsV2 테이블에 저장됩니다.

Column Type 설명
평균 real 특정 시간 범위 동안 수집된 평균값.
_BilledSize real 레코드 크기(바이트)
Count real 해당 시간 범위 동안 수집된 샘플 수.
차원 dynamic JSON 형식의 메트릭과 관련된 차원.
_IsBillable string 데이터 수집이 청구 가능한지 여부를 지정합니다. _IsBillable이 false인 경우 수집 비용은 Azure 계정에 청구되지 않습니다.
최댓값 real 해당 시간 범위 동안 수집된 최대 가치.
MetricCategory string 메트릭의 범주 이름.
MetricName string 메트릭의 표시 이름.
MetricResourceType string 메트릭을 보고하는 Azure Resource의 리소스 종류입니다.
최소 real 해당 시간 범위 내에서 수집된 최솟값.
_ResourceId string 레코드가 연결된 리소스의 고유 식별자입니다.
SourceSystem string 이벤트가 수집된 에이전트의 형식. 예를 들어, Windows 에이전트(직접 연결 또는 Operations Manager)의 경우 OpsManager, 모든 Linux 에이전트의 경우 Linux, Azure Diagnostics의 경우 Azure
_SubscriptionId string 레코드가 연결된 구독의 고유 식별자입니다.
TenantId string Log Analytics 작업 영역 ID
TimeGenerated 날짜/시간 레코드가 생성된 타임스탬프(UTC).
TimeGrain string 메트릭의 시간 조직.
총계 real 시간 범위 내 모든 값의 합계.
Type 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"
    }

다음 단계