Partager via


Métriques Azure Resource Manager dans Azure Monitor

Lorsque vous créez et gérez des ressources dans Azure, vos demandes sont orchestrées par l’intermédiaire d’un plan de contrôle Azure, Azure Resource Manager. Cet article explique comment superviser le volume et la latence des demandes de plan de contrôle envoyées à Azure.

Avec ces métriques, vous pouvez observer le trafic et la latence des demandes de plan de contrôle dans tous vos abonnements. Par exemple, vous pouvez désormais savoir quand vos demandes ont été limitées ou ont échoué en filtrant des codes d’état spécifiques en examinant des requêtes limitées et en examinant des erreurs serveur.

Les métriques restent disponibles pendant une période de trois mois (93 jours) ; elles permettent uniquement le suivi de demandes synchrones. Dans un scénario tel que la création d’une machine virtuelle, les métriques ne représentent pas le niveau de performance ou de fiabilité de l’opération asynchrone durable.

Accès aux métriques Azure Resource Manager

Vous pouvez accéder aux métriques de plan de contrôle à l’aide des API REST d’Azure Monitor, des SDK et du portail Azure (en sélectionnant la métrique « Azure Resource Manager »). Pour avoir une vue d’ensemble d’Azure Monitor, consultez Métriques dans Azure Monitor.

L’accès aux métriques de plan de contrôle ne nécessite ni inscription ni abonnement.

Pour obtenir des conseils sur la récupération d’un jeton porteur et l’envoi de demandes à Azure, consultez la documentation de référence des API REST Azure.

Définition des métriques

La définition des métriques Azure Resource Manager dans Azure Monitor est possible uniquement dans la version d’API 2017-12-01-preview. Pour récupérer la définition, vous pouvez exécuter l’extrait de code suivant, en remplaçant « 00000000-0000-0000-0000-000000000000 » par votre ID d’abonnement :

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metricDefinitions?api-version=2017-12-01-preview&metricnamespace=microsoft.resources/subscriptions' \
--header 'Authorization: bearer {{bearerToken}}'

Cet extrait retourne la définition du schéma de métriques. Notez que ce schéma inclut les dimensions que vous pouvez filtrer avec l’API Monitor :

Nom de la dimension Description
ResourceUri ID de ressource complet pour une ressource spécifique.
RequestRegion Région Azure Resource Manager où arrivent vos demandes de plan de contrôle, par exemple, « EastUS2 ». Cette région n’est pas l’emplacement de la ressource.
StatusCode Type de la réponse retournée par Azure Resource Manager à votre demande de plan de contrôle. Les valeurs possibles sont les suivantes, entre autres :
- 0
- 200
- 201
- 400
- 404
- 429
- 500
- 502
StatusCodeClass Classe du code d’état retourné par Azure Resource Manager. Les valeurs possibles sont les suivantes :
- 2xx
- 4xx
- 5xx
Espace de noms Espace de noms du fournisseur de ressources, en majuscules (par exemple, « MICROSOFT.COMPUTE »)
ResourceType Type de la ressource dans Azure que vous avez créée ou à laquelle vous avez envoyé une demande, en majuscules (par exemple, « VIRTUALMACHINES »)
Méthode Méthode HTTP utilisée dans la demande faite à Azure Resource Manager. Les valeurs possibles sont les suivantes :
- GET
- HEAD
- PUT
- POST
- PATCH
- DELETE

Exemples

Examinons maintenant certains scénarios qui peuvent vous aider à explorer les métriques Azure Resource Manager.

Interroger les métriques de plan de contrôle du trafic et de la latence dans le portail Azure

Commencez par accéder au panneau Azure Monitor dans le portail :

Capture d’écran montrant la navigation vers la page Moniteur du portail Azure avec l’Exploration des mesures en surbrillance.

Après avoir sélectionné Explorer les métriques, sélectionnez un abonnement, puis sélectionnez la métrique Azure Resource Manager :

Capture d’écran de la sélection d’un abonnement unique et de la métrique Azure Resource Manager dans le portail Azure.

Ensuite, après avoir sélectionné Appliquer, vous pouvez visualiser les métriques de plan de contrôle du trafic ou de la latence en appliquant un filtrage et un fractionnement personnalisés :

Capture d’écran de la visualisation des métriques dans le portail Azure, montrant les options de filtrage et fractionnement par dimensions.

Interroger les métriques de plan de contrôle du trafic et de la latence via l’API REST

Après vous être authentifié auprès d’Azure, vous pouvez envoyer une demande pour récupérer les métriques de plan de contrôle de votre abonnement. Dans le script, remplacez « 0000000-0000-0000-0000-000000000000000 » par votre ID d’abonnement. Le script récupère la latence moyenne des requêtes (en secondes) et le nombre total de requêtes sur une période de deux jours, divisé en intervalles d’un jour :

curl --location --request GET "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=average,count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z" \
--header "Authorization: bearer {{bearerToken}}"

Avec les métriques Azure Resource Manager, vous pouvez récupérer le volume de trafic en utilisant la métrique de latence (Latency) et en incluant l’agrégation « count ». Vous verrez une réponse JSON à la requête :

{
    "cost": 5758,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Latency",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Latency",
                "localizedValue": "Latency"
            },
            "displayDescription": "Latency data for all requests to Azure Resource Manager",
            "unit": "Seconds",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0,
                            "average": 0.19345163584637273
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0,
                            "average": 0.28294792353328935
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

Si vous souhaitez récupérer uniquement le volume de trafic, utilisez la métrique de trafic (Traffic) en incluant l’agrégation « count » :

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Traffic&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z' \
--header 'Authorization: bearer {{bearerToken}}'

Voici la réponse à la demande :

{
    "cost": 2879,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Traffic",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Traffic",
                "localizedValue": "Traffic"
            },
            "displayDescription": "Traffic data for all requests to Azure Resource Manager",
            "unit": "Count",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

Pour les mesures prenant en charge des dimensions, vous devez spécifier la valeur de la dimension pour afficher les valeurs de mesures correspondantes. Par exemple, si le plus important pour vous est de suivre la métrique Latency pour connaître les demandes à ARM réussies, vous devez filtrer la dimension StatusCodeClass sur 2XX.

Si vous préférez examiner le nombre de demandes de ressources réseau (réseaux virtuels et équilibreurs de charge, par exemple) qui ont été faites dans votre abonnement, vous devez filtrer la dimension Namespace (Espace de noms) sur MICROSOFT.NETWORK.

Examiner les demandes limitées

Pour voir uniquement vos demandes limitées, vous devez appliquer un filtre qui affiche seulement les réponses ayant le code d’état 429. Pour les appels d’API REST, le filtrage s’effectue avec la propriété $filter et la dimension StatusCode en ajoutant le code $filter=StatusCode eq '429', comme vous le voyez à la fin de la demande dans l’extrait de code suivant :

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCode%20eq%20%27429%27' \
--header 'Authorization: bearer {{bearerToken}}'

Vous aussi appliquer un filtre directement dans le portail : Capture d’écran du filtrage des réponses avec le code d’état HTTP 429 uniquement.

Examiner les erreurs serveur

Tout comme pour les demandes limitées, vous pouvez visualiser toutes les demandes qui ont reçu en réponse un code d’erreur serveur, en filtrant uniquement les réponses 5xx. Pour les appels d’API REST, le filtrage s’effectue avec la propriété $filter et la dimension StatusCodeClass en ajoutant le code $filter=StatusCodeClass eq '5xx', comme vous le voyez à la fin de la demande dans l’extrait de code suivant :

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCodeClass%20eq%20%275xx%27' \
--header 'Authorization: bearer {{bearerToken}}'

Vous pouvez également effectuer un filtrage sur les erreurs serveur générales au sein du portail en définissant la propriété du filtre sur « StatusCodeClass » et la valeur sur « 5xx », comme dans l’exemple de limitation ci-dessus.

Étapes suivantes