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 métriques par DCR ne prend pas en charge l’exportation de métriques 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
Virtual Machine Scale Sets 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
Serveur SQL Microsoft.sql/servers
Microsoft.sql/serveurs/bases de données
Analyses opérationnelles Microsoft.operationalinsights/workspaces
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
  • Centre des États-Unis
  • CentralUsEuap
  • États-Unis - partie centrale méridionale
  • USA Est
  • Est des États-Unis 2
  • Eastus2Euap
  • USA Ouest
  • Ouest des États-Unis 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é Descriptif
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>

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>

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 valides :
systemAssigned
userAssigned
kind Genre de règle de collecte de données. Définir à PlatformTelemetry pour exporter des 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 attribuées à l'utilisateur et au système

Les identités assignées par l’utilisateur et par le système sont prises en charge lors de la création des 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 une règle de collecte des données (DCR) pour l’exportation de métriques.

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 Catégorie Descriptif
Moyenne réel Valeur moyenne collectée pendant l’intervalle de temps.
_BilledSize réel Taille de l’enregistrement en octets
Nombre réel Nombre d’échantillons collectés pendant l’intervalle de temps.
Dimension dynamique Dimension associée de la métrique au format JSON.
_IsBillable ficelle 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 réel Valeur maximale collectée pendant l’intervalle de temps.
MetricCategory ficelle Nom de catégorie de la métrique.
Nom de la Mesure ficelle Nom d’affichage de la métrique.
Type de Ressource de Mesure ficelle Type de ressource de la ressource Azure rendant compte de la métrique.
Minimum réel Valeur minimale collectée pendant l’intervalle de temps.
_ResourceId (Identifiant de Ressource) ficelle Un identificateur unique de la ressource à laquelle l’enregistrement est associé
SourceSystem ficelle 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.
Identifiant_de_souscription ficelle Un identificateur unique de l’abonnement auquel l’enregistrement est associé
Identifiant du locataire ficelle ID de l’espace de travail Log Analytics
TimeGenerated date et heure Timestamp (UTC) de la génération de l’enregistrement.
TimeGrain ficelle Granularité temporelle de la métrique.
Somme réel Somme de toutes les valeurs de l’intervalle de temps.
Catégorie ficelle Nom de la table
NomDeL'Unité ficelle 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