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 :
Après avoir sélectionné Explorer les métriques, sélectionnez un abonnement, puis sélectionnez la métrique Azure Resource Manager :
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 :
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®ion=global&aggregation=average,count×pan=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®ion=global&aggregation=count×pan=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®ion=global&aggregation=count,average×pan=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 :
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®ion=global&aggregation=count,average×pan=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.