Partager via


Exportation de métriques via des règles de collecte de données (préversion)

Les règles de collecte de données (DCR) permettent de collecter les données de monitoring de vos ressources Azure. Pour obtenir la liste des scénarios de collecte de données, consultez Règles de collecte de données – Vue d’ensemble. Vous pouvez désormais utiliser des DCR pour collecter et exporter des métriques de plateforme.

Actuellement, les métriques de plateforme peuvent être collectées à l’aide de DCR et de paramètres de diagnostic. Un nombre croissant de ressources prennent en charge l’exportation de métriques à l’aide de DCR. Pour obtenir la liste des ressources prises en charge, consultez Ressources et régions prises en charge.

L’utilisation de DCR pour exporter des métriques présente les avantages suivants par rapport aux paramètres de diagnostic :

  • La configuration de DCR permet d’exporter des métriques avec des dimensions.
  • La configuration de DCR permet de filtrer les métriques en fonction de leur nom. Vous pouvez donc exporter uniquement les métriques dont vous avez besoin.
  • Les DCR sont plus flexibles et évolutives que les paramètres de diagnostic.
  • La latence de bout en bout pour les DCR est inférieure à 3 minutes. Ceci constitue une amélioration majeure par rapport aux paramètres de diagnostic pour lesquels la latence d’exportation de métriques est comprise entre 6 et 10 minutes.

Utilisez l’exportation de métriques via des DCR pour effectuer une exportation continue des données de métriques. Pour interroger les données historiques, utilisez l’API de traitement par lots des métriques de plan de données. Pour obtenir une comparaison des deux services, consultez Requête d’API de traitement par lots des métriques de plan de données et exportation de métriques.

Pour créer des DCR pour des métriques, utilisez l’API REST, Azure CLI ou Azure PowerShell. Pour obtenir des informations sur la création de DCR pour l’exportation de métriques, consultez Créer des règles de collecte de données pour les métriques.

Quand vous créez une DCR, vous devez créer une association de règle de collecte de données (DCRA) pour associer la DCR à la ressource à surveiller. Vous pouvez créer une seule DCR pour de nombreux types de ressources. Pour obtenir des informations sur la création d’une DCRA, consultez Créer des associations de règles de collecte de données. Quand vous utilisez le Portail Azure, la DCRA est créée automatiquement.

Remarque

Il est possible d’utiliser des DCR et des paramètres de diagnostic en même temps. Si vous utilisez des DCR, nous vous recommandons de désactiver les paramètres de diagnostic pour les métriques afin d’éviter la collecte de données en double.

Destinations d’exportation

Vous pouvez exporter les métriques vers l’une des destinations suivantes par DCR :

  • Espaces de travail Log Analytics.
    L’exportation vers des espaces de travail Log Analytics peut couvrir plusieurs régions. L’espace de travail Log Analytics et la DCR doivent se trouver dans la même région, mais les ressources surveillées peuvent se trouver dans n’importe quelle région. Les métriques envoyées à un espace de travail Log Analytics sont stockées dans la table AzureMetricsV2.

  • Comptes de stockage Azure.
    Le compte de stockage, la DCR et les ressources surveillées doivent se trouver dans la même région.

  • Event Hubs.
    Les hubs d’événements, la DCR et les ressources surveillées doivent se trouver dans la même région.

Pour obtenir un échantillon de données dans chaque destination, consultez Données exportées.

Remarque

La latence pour l’exportation de métriques est d’environ 3 minutes. Après la configuration initiale, jusqu’à 15 minutes peuvent s’écouler avant que les métriques ne commencent à apparaître dans la destination.

Limites

Les DCR pour l’exportation de métriques présentent les limitations suivantes :

  • Un seul type de destination peut être spécifié par DCR.
  • Au maximum, 5 DCR peuvent être associées à une seule ressource Azure.
  • L’exportation de mesures par DCR ne prend pas en charge l’exportation de mesures par fragment horaire.

Ressources et régions prises en charge

Les ressources suivantes prennent en charge l’exportation de métriques à l’aide de règles de collecte de données :

Type de ressource Spécification du flux
Groupe de machines virtuelles identiques Microsoft.compute/virtualmachinescalesets
Machines virtuelles Microsoft.compute/virtualmachines
Cache Redis Microsoft.cache/redis
Hubs IOT Microsoft.devices/iothubs
Coffres de clés Microsoft.keyvault/vaults
Comptes de stockage 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
Protection des données Microsoft.dataprotection/backupvaults
Azure Kubernetes Service Microsoft.ContainerService/managedClusters

Régions prises en charge

Vous pouvez créer une DCR pour l’exportation de métriques dans n’importe quelle région, mais les ressources à partir desquelles vous souhaitez exporter des métriques doivent se trouver dans l’une des régions suivantes :

  • Australie Est
  • USA Centre
  • CentralUsEuap
  • États-Unis - partie centrale méridionale
  • USA Est
  • USA Est 2
  • Eastus2Euap
  • USA Ouest
  • USA Ouest 2
  • Europe Nord
  • Europe Ouest
  • Sud du Royaume-Uni

Spécifications des DCR

Les règles de collecte de données sont définies dans un objet JSON. Les propriétés suivantes sont requises pour créer une DCR pour l’exportation de métriques.

Propriété Description
dataSources.platformTelemetry.streams Répertorie les types de ressources et les métriques. Spécifiez Metrics-Group-All pour collecter toutes les métriques de la ressource ou spécifiez des métriques individuelles. Format : <resource type>:Metrics-Group-All | <metric name>
Par exemple, Microsoft.Compute/virtualMachines:Percentage CPU
dataSources.platformTelemetry.name Nom de la source de données.
destinations Destination des métriques. Une seule destination est prise en charge par DCR.
Types de destinations valides :
storageAccounts
logAnalytics
eventHubs
dataflows.streams Liste des flux à passer à la destination au format suivant : <resource type>:Metrics-Group-All |<metric name>
Par exemple, « Microsoft.Compute/virtualMachines:Percentage CPU ».
dataflows.destinations Destination, définie dans la propriété destinations, à laquelle les flux sont passés.
identity.type Type d’identité à utiliser pour la DCR. Obligatoire pour les destinations de compte de stockage.
Valeurs correctes :
systemAssigned
userAssigned
kind Genre de règle de collecte de données. Propriété définie sur PlatformTelemetry pour l’exportation de métriques.
location Emplacement de la DCR.

Remarque

Un seul type de destination peut être spécifié par DCR.

Format JSON pour l’exportation de métriques DCR

Utilisez le format dans l’objet JSON générique suivant pour créer une DCR pour l’exportation de métriques. Supprimez les destinations indésirables lors de la copie de l’exemple.

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

Remarque

Lors de la création d’une DCR pour l’exportation de métriques à l’aide de l’interface CLI, les propriétés kind, location et identity sont passées en tant qu’arguments et doivent être supprimées de l’objet JSON.

Identités affectées par l’utilisateur et le système

Les identités affectées par l’utilisateur et le système sont prises en charge lors de la création de DCR. Une identité est requise pour les destinations Compte de stockage et Event Hubs. Vous pouvez utiliser une identité affectée par le système ou par l’utilisateur. Pour plus d’informations, consultez Attribuer des rôles Azure à une identité managée.

Pour utiliser une identité affectée par le système, ajoutez l’objet identity comme suit :

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

Pour utiliser une identité affectée par l’utilisateur, ajoutez l’objet identity comme suit :

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

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

    }

Filtrage des métriques

Lorsque vous spécifiez les métriques à exporter, vous pouvez les filtrer par nom ou demander toutes les métriques en utilisant Metrics-Group-All. Pour obtenir la liste des métriques prises en charge, consultez Métriques et catégories de journaux prises en charge par type de ressource.

Pour spécifier plusieurs métriques du même type de ressource, créez un élément de flux distinct pour chaque métrique.

L’exemple suivant montre comment filtrer les métriques par nom.

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

Exemples d’objets JSON pour l’exportation de métriques

Les exemples suivants illustrent des objets JSON DCR pour l’exportation de métriques vers chaque type de destination.

Espaces de travail Log Analytics

L’exemple suivant montre une règle de collecte de données pour des métriques qui envoie des métriques spécifiques des machines virtuelles et des groupes de machines virtuelles identiques ainsi que l’ensemble des métriques des coffres de clés à un espace de travail 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"
}

Créer des DCR pour l’exportation de métriques

Pour créer des DCR pour l’exportation de métriques, utilisez le Portail Azure, l’interface CLI, PowerShell, l’API REST ou le modèle ARM. Pour plus d’informations, consultez Créer et modifier des règles de collecte de données (DCR) et des associations dans Azure Monitor.

Données exportées

Les exemples suivants montrent les données exportées vers chaque destination.

Espaces de travail Log Analytics

Les données exportées vers un espace de travail Log Analytics sont stockées dans la table AzureMetricsV2 dans l’espace de travail Log Analytics au format suivant :

Colonne Type Description
Average real Valeur moyenne collectée pendant l’intervalle de temps.
_BilledSize real Taille de l’enregistrement en octets
Count real Nombre d’échantillons collectés pendant l’intervalle de temps.
Dimension dynamic Dimension associée de la métrique au format JSON.
_IsBillable string Spécifie si l’ingestion des données est facturable. Quand _IsBillable est false, l’ingestion n’est pas facturée sur votre compte Azure.
Maximale real Valeur maximale collectée pendant l’intervalle de temps.
MetricCategory string Nom de catégorie de la métrique.
MetricName string Nom d’affichage de la métrique.
MetricResourceType string Type de ressource de la ressource Azure rendant compte de la métrique.
Minimum real Valeur minimale collectée pendant l’intervalle de temps.
_ResourceId string Un identificateur unique de la ressource à laquelle l’enregistrement est associé
SourceSystem string Type d’agent ayant collecté l’événement. Par exemple, OpsManager pour l’agent Windows (connexion directe ou Operations Manager), Linux pour tous les agents Linux, ou Azure pour Diagnostics Azure.
_SubscriptionId string Un identificateur unique de l’abonnement auquel l’enregistrement est associé
TenantId string ID de l’espace de travail Log Analytics
TimeGenerated DATETIME Timestamp (UTC) de la génération de l’enregistrement.
TimeGrain string Fragment de temps de la métrique.
Total real Somme de toutes les valeurs de l’intervalle de temps.
Type string Le nom de la table
UnitName string Unité de la métrique.

Par exemple :

Capture d’écran d’une requête d’analytique des journaux d’activité de la table AzureMetricsV2.

Comptes de stockage

L’exemple suivant montre les données exportées vers un compte de stockage :

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

L’exemple suivant montre une métrique exportée vers 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"
    }

Étapes suivantes