Métriques courantes pour la mise à l’échelle automatique d’Azure Monitor

La mise à l’échelle automatique Azure Monitor vous permet de faire un scale-in ou scale-out du nombre des instances exécutées en fonction des données de télémétrie ou des métriques. La mise à l’échelle peut être basée sur n’importe quelle métrique, même les métriques d’une autre ressource. Par exemple, mettez à l’échelle un groupe de machines virtuelles identiques en fonction de la quantité de trafic sur un pare-feu.

Cet article décrit les métriques couramment utilisées pour déclencher des événements de mise à l’échelle.

La mise à l’échelle automatique Azure prend en charge de nombreux types de ressources. Pour plus d’informations sur les ressources prises en charge, consultez Ressources prises en charge par la mise à l’échelle automatique.

Pour toutes les ressources, vous pouvez obtenir la liste des métriques disponibles en utilisant PowerShell ou Azure CLI

Get-AzMetricDefinition -ResourceId <resource_id> 
az monitor metrics list-definitions --resource <resource_id>

Calcul des métriques pour les machines virtuelles basées sur Resource Manager

Par défaut, les machines virtuelles et les groupes de machines virtuelles identiques basés sur Azure Resource Manager émettent des métriques de base (au niveau de l’hôte). Par ailleurs, quand vous configurez la collecte de données de diagnostic pour une machine virtuelle et un groupe de machines virtuelles identiques Azure, l’extension Diagnostics Azure émet également les compteurs de performances du système d’exploitation invité. Ces compteurs sont communément appelés « métriques du système d’exploitation invité ». Vous utilisez toutes ces métriques dans les règles de mise à l’échelle automatique.

Si vous utilisez des groupes de machines virtuelles identiques et que vous ne voyez pas une métrique particulière dans la liste, elle est probablement désactivée dans votre extension Diagnostics.

Si une métrique en particulier n’est pas en cours d’échantillonnage ou de transfert vers la fréquence souhaitée, vous pouvez mettre à jour la configuration des diagnostics.

Si l’un des deux cas ci-dessus s’applique, consultez Utiliser PowerShell pour activer Diagnostics Azure sur une machine virtuelle exécutant Windows pour savoir comment configurer et mettre à jour votre extension Diagnostics de machine virtuelle Azure afin d’activer la métrique. Cet article inclut également un exemple de fichier de configuration de diagnostics.

Métriques de l’hôte pour les machines virtuelles Windows et Linux basées sur Resource Manager

Les métriques de niveau hôte suivantes sont émises par défaut pour les machines virtuelles et groupes de machines virtuelles identiques Azure dans les instances Windows et Linux. Ces métriques décrivent votre machine virtuelle Azure, mais sont collectées à partir de l’hôte de la machine virtuelle Azure plutôt que via l’agent installé sur la machine virtuelle invitée. Vous pouvez utiliser ces métriques dans les règles de mise à l’échelle automatique.

Métriques de système d’exploitation invité pour les machines virtuelles Windows basées sur Resource Manager

Lorsque vous créez une machine virtuelle dans Azure, les diagnostics sont effectués grâce à l’extension Diagnostics. L’extension Diagnostics émet un ensemble de métriques extraites de la machine virtuelle. Cela signifie que vous pouvez appliquer une mise à l’échelle automatique en utilisant des métriques qui ne sont pas émises par défaut.

Vous pouvez créer une alerte pour les métriques suivantes :

Nom de métrique Unité
\Processor(_Total)% temps processeur Pourcentage
\Processor(_Total)% temps privilégié Pourcentage
\Processor(_Total)% temps utilisateur Pourcentage
\Processor Information(_Total)\Fréquence du processeur Count
\System\Processus Count
\Process(_Total)\Nombre de threads Count
\Process(_Total)\Nombre de handles Count
\Memory% octets de mémoire engagés utilisés Pourcentage
\Memory\Octets disponibles Octets
\Memory\Octets validés Octets
\Memory\Limite de mémoire dédiée Octets
\Memory\Octets de réserve paginée Octets
\Memory\Octets de réserve non paginée Octets
\PhysicalDisk(_Total)% temps disque Pourcentage
\PhysicalDisk(_Total)% temps lecture du disque Pourcentage
\PhysicalDisk(_Total)% temps écriture du disque Pourcentage
\PhysicalDisk(_Total)\Disk Transfers/sec CountPerSecond
\PhysicalDisk(_Total)\Lectures disque/s CountPerSecond
\PhysicalDisk(_Total)\Écritures disque/s CountPerSecond
\PhysicalDisk(_Total)\Octets disque/s BytesPerSecond
\PhysicalDisk(_Total)\Lectures disque, octets/s BytesPerSecond
\PhysicalDisk(_Total)\Écritures disque, octets/s BytesPerSecond
\PhysicalDisk(_Total)\Longueur moyenne Longueur de file d'attente de disque Count
\PhysicalDisk(_Total)\Longueur moyenne de file d’attente lecture disque Count
\PhysicalDisk(_Total)\Longueur moyenne de file d’attente écriture disque Count
\LogicalDisk(_Total)% espace libre Pourcentage
\LogicalDisk(_Total)\Mégaoctets libres Count

Métriques de SE invité pour les machines virtuelles Linux

Lorsque vous créez une machine virtuelle dans Azure, les diagnostics sont activés par défaut grâce à l’extension Diagnostics.

Vous pouvez créer une alerte pour les métriques suivantes :

Nom de métrique Unité
\Mémoire\Mémoire disponible Octets
\Mémoire\Pourcentage de mémoire disponible Pourcentage
\Mémoire\Mémoire utilisée Octets
\Mémoire\Pourcentage de mémoire utilisée Pourcentage
\Mémoire\Pourcentage de mémoire utilisée par le cache Pourcentage
\Mémoire\Pages par seconde CountPerSecond
\Mémoire\Pages lues par seconde CountPerSecond
\Mémoire\Pages écrites par seconde CountPerSecond
\Mémoire\Échanges disponibles Octets
\Mémoire\Pourcentage d’échanges disponibles Pourcentage
\Mémoire\Échanges utilisés Octets
\Mémoire\Pourcentage d’échanges utilisés Pourcentage
\Processeur\Pourcentage de temps d’inactivité Pourcentage
\Processeur\Pourcentage de temps d’utilisateur Pourcentage
\Processeur\Pourcentage de temps d’efficacité Pourcentage
\Processeur\Pourcentage de temps privilégié Pourcentage
\Processeur\Pourcentage de temps d’interruption Pourcentage
\Processeur\Pourcentage de temps d’appels de procédure différés (DPC) Pourcentage
\Processeur\Pourcentage de temps de processeur Pourcentage
\Processeur\Pourcentage de temps d’attente Pourcentage
\Disque physique\Octets par seconde BytesPerSecond
\Disque physique\Octets lus par seconde BytesPerSecond
\Disque physique\Octets écrits par seconde BytesPerSecond
\Disque physique\Transferts par seconde CountPerSecond
\Disque physique\Lectures par seconde CountPerSecond
\Disque physique\Écritures par seconde CountPerSecond
\Disque physique\Temps de lecture moyen Secondes
\Disque physique\Temps d’écriture moyen Secondes
\Disque physique\Temps de transfert moyen Secondes
\Disque physique\Longueur moyenne de la file d’attente du disque Count
\Interface réseau\Octets transmis Octets
\Interface réseau\Octets reçus Octets
\Interface réseau\Paquets transmis Count
\Interface réseau\Paquets reçus Count
\Interface réseau\Total des octets Octets
\Interface réseau\Total des erreurs Rx Count
\Interface réseau\Total des erreurs Tx Count
\Interface réseau\Total des collisions Count

Métriques App Service (batterie de serveurs) couramment utilisées

Vous pouvez également effectuer la mise à l’échelle en fonction des métriques de serveur web courantes, telles que la longueur de file d’attente HTTP. Son nom de métrique est HttpQueueLength. La section suivante liste les métriques de batterie de serveurs (App Service) disponibles.

Métriques Web Apps

Pour Web Apps, vous pouvez envoyer une alerte ou faire une mise à l’échelle en fonction de ces métriques.

Nom de métrique Unité
CpuPercentage Pourcentage
MemoryPercentage Pourcentage
DiskQueueLength Count
HttpQueueLength Count
BytesReceived Octets
BytesSent Octets

Métriques couramment utilisées dans Azure Storage

Vous pouvez procéder à une mise à l’échelle en fonction de la longueur de la file d’attente Stockage Azure, qui correspond au nombre de messages dans la file d’attente Stockage. La longueur de file d’attente Stockage est une métrique spéciale et le seuil appliqué sera le nombre de messages par instance. Par exemple, si vous avez deux instances et que le seuil est défini sur 100, la mise à l’échelle aura lieu lorsque la file d’attente contiendra 200 messages. Cela peut être 100 messages par instance, 120 + 80 ou toute autre combinaison qui correspond à 200 ou plus.

Configurez ce paramètre dans le panneau Paramètres du portail Azure. Pour les groupes de machines virtuelles identiques, vous pouvez mettre à jour le paramètre de mise à l’échelle automatique dans le modèle Resource Manager afin d’utiliser metricName comme ApproximateMessageCount, puis passer l’ID de la file d’attente de stockage comme metricResourceUri.

Par exemple, avec un compte Stockage Azure classique, le paramètre de mise à l’échelle automatique metricTrigger peut inclure :

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ClassicStorage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

Pour un compte Stockage Azure (non classique), le paramètre metricTrigger peut inclure :

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

Métriques Service Bus généralement utilisées

Vous pouvez procéder à une mise à l’échelle en fonction de la longueur de la file d’attente Azure Service Bus, autrement dit en fonction du nombre de messages présents dans cette file d’attente. La longueur de la file d’attente Service Bus est une métrique particulière. Le seuil correspond au nombre de messages par instance. Par exemple, si vous avez deux instances et que le seuil est défini sur 100, la mise à l’échelle a lieu quand le nombre total de messages dans la file d’attente est 200. Cela peut être 100 messages par instance, 120 + 80 ou toute autre combinaison qui correspond à 200 ou plus.

Pour Virtual Machine Scale Sets, vous pouvez mettre à jour le paramètre de mise à l’échelle automatique dans le modèle Resource Manager afin d’utiliser metricName comme ActiveMessageCount, puis passer l’ID de la file d’attente Service Bus comme metricResourceUri.

"metricName": "ActiveMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ServiceBus/namespaces/SB_NAMESPACE/queues/QUEUE_NAME"

Remarque

Pour Service Bus, le concept de groupe de ressources n’existe pas. Azure Resource Manager crée un groupe de ressources par défaut par région. Le groupe de ressources est généralement affiché au format « Default-ServiceBus-[région] ». Par exemple : Default-ServiceBus-EastUS, Default-ServiceBus-WestUS, et Default-ServiceBus-AustraliaEast.