Estructura de la regla de recopilación de datos (DCR) para la exportación de métricas

La exportación de métricas en Azure Monitor usa reglas de recopilación de datos (DCR) para definir qué métricas recopilar de qué recursos y dónde enviarlos. Al usar Azure Portal para configurar esta característica, no es necesario comprender la estructura de DCR. Sin embargo, si usa otros métodos, es posible que tenga que comprender la estructura para poder modificarla para sus requisitos. En este artículo se describen los detalles de las DCR que se usan para la exportación de métricas.

Propiedades de DCR

Propiedad Description
dataSources.platformTelemetry.streams Enumera los tipos de recursos y las métricas. Especifique Metrics-Group-All para recopilar todas las métricas del recurso o especifique métricas individuales. Formato: <resource type>:Metrics-Group-All \| <metric name>

Ejemplo: Microsoft.Compute/virtualMachines:Percentage CPU
dataSources.platformTelemetry.name El nombre del origen de datos.
destinations Destino de las métricas. Solo se admite un destino por DCR.
Tipos de destinos válidos:
storageAccounts
logAnalytics
eventHubs
dataflows.streams Lista de flujos que se van a pasar al destino en formato: <resource type>:Metrics-Group-All \| <metric name>

Ejemplo: Microsoft.Compute/virtualMachines:Percentage CPU
dataflows.destinations Destino al que se deben pasar los flujos según lo definido en la propiedad destinations.
identity.type Tipo de identidad que se utiliza para la DCR. Necesario para los destinos de la cuenta de almacenamiento.
Valores válidos:
systemAssigned
userAssigned
kind Tipo de regla de recopilación de datos. Establezca esta opción en PlatformTelemetry para la exportación de métricas.
location Ubicación de la DCR.

Nota:

Solo se puede especificar un destino por DCR.

Estructura JSON

Use el siguiente formato en el objeto JSON genérico para crear una DCR para la exportación de métricas. Quite los destinos no deseados al copiar el ejemplo.

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

Nota:

Al crear una DCR para la exportación de métricas mediante la CLI, kind, location y identity se pasan como argumentos y se deben quitar del objeto JSON.

Identidades asignadas por el sistema y por el usuario

Las identidades asignadas por el usuario y el sistema se admiten al crear DCR. Se requiere una identidad para los destinos de cuenta de almacenamiento y Event Hubs. Puede usar una identidad asignada por el sistema o por el usuario. Para más información, consulte Asignación de roles de Azure a una identidad administrada.

Para usar una identidad asignada por el sistema, agregue el objeto identity de la siguiente manera:

    "identity": {
         "type": "systemAssigned"
    },

Para usar una identidad asignada por el usuario, agregue el objeto identity de la siguiente manera:

    "identity": {
        "type": "userassigned", 

        "userAssignedIdentities": { 
            "/subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity name>": {} 
        }

    }

Filtrado de métricas

Al especificar las métricas que se van a exportar, puede filtrarlas por nombre o solicitar todas las métricas mediante Metrics-Group-All. Para obtener una lista de las métricas admitidas, consulte Métricas admitidas y categorías de registro por tipo de recurso.

Para especificar más de una métrica del mismo tipo de recurso, cree un elemento de flujo independiente para cada métrica.

En el ejemplo siguiente se muestra cómo filtrar las métricas por nombre.

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

Ejemplos de exportación de métricas

En los ejemplos siguientes se muestran objetos JSON de DCR de ejemplo para la exportación de métricas a cada tipo de destino.

Áreas de trabajo de Log Analytics

En el ejemplo siguiente se muestra una regla de recopilación de datos para métricas que envían métricas específicas de máquinas virtuales, conjuntos de escalado de máquinas virtuales y todas las métricas del almacén de claves a un área de trabajo de 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"
}

Pasos siguientes