Métricas comunes de escalado automático de Azure Monitor

El escalado automático de Azure Monitor le permite escalar y reducir horizontalmente el número de instancias en ejecución, basándose en los datos de telemetría. El escalado se puede basar en cualquier métrica, incluso en métricas de un recurso diferente. Por ejemplo, escale un conjunto de escalado de máquinas virtuales en función de la cantidad de tráfico en un firewall.

En este artículo se describen las métricas que se usan normalmente para desencadenar eventos de escalado.

El escalado automático de Azure admite muchos tipos de recursos. Para obtener más información sobre los recursos admitidos, consulte Escalabilidad automática de recursos admitidos.

Para todos los recursos, puede obtener una lista de las métricas disponibles mediante PowerShell o la CLI de Azure.

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

Cálculo de métricas de máquinas virtuales basadas en Resource Manager

De manera predeterminada, las máquinas virtuales basadas en Azure Resource Manager y los conjuntos de escalado de máquinas virtuales emiten métricas básicas (de nivel de host). Además, al configurar la recopilación de datos de diagnóstico para una VM y conjuntos de escalado de máquinas virtuales de Azure, la extensión Azure Diagnostics también emite contadores de rendimiento del SO invitado. Estos contadores se conocen normalmente como "Métricas de SO invitado". Todas estas métricas se usan en las reglas de escalabilidad automática.

Si está utilizando conjuntos de escalado de máquinas virtuales y no ve una métrica concreta enumerada, entonces es probable que esté deshabilitada en la extensión Diagnostics.

Si una métrica concreta no se muestrea o se transfiere a la frecuencia que desea, puede actualizar la configuración de diagnóstico.

Si se cumple cualquiera de los casos anteriores, vea Uso de PowerShell para habilitar Diagnósticos de Azure en una máquina virtual con Windows para configurar y actualizar la extensión Diagnostics de máquina virtual de Azure a fin de habilitar la métrica. El artículo también incluye un archivo de configuración de diagnósticos de ejemplo.

Métricas de host para máquinas virtuales Windows y Linux basadas en Resource Manager

Las siguientes métricas de nivel de host se emiten de manera predeterminada para máquinas virtuales y conjuntos de escalado de máquinas virtuales de Azure en instancias con Windows y Linux. Estas métricas describen la máquina virtual de Azure, pero se recopilan desde el host de dicha máquina en lugar de hacerlo a través de agente instalado en la máquina virtual invitada. Puede usar estas métricas en reglas de escalabilidad automática.

Métricas de SO invitado para máquinas virtuales Windows basadas en Resource Manager

Cuando crea una nueva máquina virtual en Azure, los diagnósticos se habilitan mediante la extensión Diagnósticos. La extensión de diagnósticos emite un conjunto de métricas realizadas desde dentro de la máquina virtual. Esto significa que puede escalar automáticamente mediante las métricas que no se emiten de manera predeterminada.

Puede crear una alerta para las siguientes métricas:

Nombre de métrica Unidad
\Procesador(_Total)% de tiempo del procesador Percent
\Processor(_Total)% de tiempo con privilegios Percent
\Processor(_Total)% de tiempo de usuario Percent
\Información del procesador(_Total)\Frecuencia del procesador Count
\Sistema\Procesos Count
\Proceso(_Total)\Número de subprocesos Count
\Proceso(_Total)\Número de identificadores Count
\Memoria% de bytes confirmados en uso Percent
\Memoria\Bytes disponibles Bytes
\Memoria\Bytes confirmados Bytes
\Memoria\Límite de confirmación Bytes
\Memoria\Bytes de bloque paginado Bytes
\Memoria\Bytes de bloque no paginado Bytes
\Disco físico(_Total)% de tiempo de disco Percent
\Disco físico(_Total)% de tiempo de lectura de disco Percent
\Disco físico(_Total)% de tiempo de escritura de disco Percent
\Disco físico(_Total)\Transferencias de disco/s CountPerSecond
\Disco físico(_Total)\Lecturas de disco/s CountPerSecond
\Disco físico(_Total)\Escrituras de disco/s CountPerSecond
\Disco físico(_Total)\Bytes de disco/s BytesPerSecond
\Disco físico(_Total)\Bytes de lectura de disco/s BytesPerSecond
\Disco físico(_Total)\Bytes de escritura de disco/s BytesPerSecond
\Disco físico(_Total)\Promedio Longitud de la cola de disco Count
\Disco físico(_Total)\Promedio Longitud de la cola de lectura de disco Count
\Disco físico(_Total)\Promedio Longitud de la cola de escritura de disco Count
\Disco lógico(_Total)% de espacio disponible Percent
\Disco lógico(_Total)\Megabytes disponibles Count

Métricas de SO invitado para máquinas virtuales Linux

Cuando crea una máquina virtual en Azure, los diagnósticos se habilitan de forma predeterminada mediante la extensión Diagnósticos.

Puede crear una alerta para las siguientes métricas:

Nombre de métrica Unidad
\Memory\AvailableMemory Bytes
\Memory\PercentAvailableMemory Percent
\Memory\UsedMemory Bytes
\Memory\PercentUsedMemory Percent
\Memory\PercentUsedByCache Percent
\Memory\PagesPerSec CountPerSecond
\Memory\PagesReadPerSec CountPerSecond
\Memory\PagesWrittenPerSec CountPerSecond
\Memory\AvailableSwap Bytes
\Memory\PercentAvailableSwap Percent
\Memory\UsedSwap Bytes
\Memory\PercentUsedSwap Percent
\Processor\PercentIdleTime Percent
\Processor\PercentUserTime Percent
\Processor\PercentNiceTime Percent
\Processor\PercentPrivilegedTime Percent
\Processor\PercentInterruptTime Percent
\Processor\PercentDPCTime Percent
\Processor\PercentProcessorTime Percent
\Processor\PercentIOWaitTime Percent
\PhysicalDisk\BytesPerSecond BytesPerSecond
\PhysicalDisk\ReadBytesPerSecond BytesPerSecond
\PhysicalDisk\WriteBytesPerSecond BytesPerSecond
\PhysicalDisk\TransfersPerSecond CountPerSecond
\PhysicalDisk\ReadsPerSecond CountPerSecond
\PhysicalDisk\WritesPerSecond CountPerSecond
\PhysicalDisk\AverageReadTime Segundos
\PhysicalDisk\AverageWriteTime Segundos
\PhysicalDisk\AverageTransferTime Segundos
\PhysicalDisk\AverageDiskQueueLength Count
\NetworkInterface\BytesTransmitted Bytes
\NetworkInterface\BytesReceived Bytes
\NetworkInterface\PacketsTransmitted Count
\NetworkInterface\PacketsReceived Count
\NetworkInterface\BytesTotal Bytes
\NetworkInterface\TotalRxErrors Count
\NetworkInterface\TotalTxErrors Count
\NetworkInterface\TotalCollisions Count

Métricas de App Service comúnmente usadas (granja de servidores)

También puede realizar el escalado automático basándose en métricas de servidor web comunes, como la longitud de cola HTTP. El nombre de la métrica es HttpQueueLength. En la siguiente sección se muestran las métricas de granja de servidores disponibles (App Service).

Métricas de Web Apps

Para Web Apps, puede alertar sobre estas métricas o escalar por las mismas.

Nombre de métrica Unidad
CpuPercentage Percent
MemoryPercentage Percent
DiskQueueLength Count
HttpQueueLength Count
BytesReceived Bytes
BytesSent Bytes

Métricas de almacenamiento utilizadas comúnmente

Puede escalar por la longitud de la cola de Azure Storage, que es el número de mensajes de dicha cola. La longitud de cola de almacenamiento es una métrica especial y el umbral es el número de mensajes por instancia. Por ejemplo, si hay dos instancias y el umbral está establecido en 100, el escalado se produce cuando el número total de mensajes de la cola es 200. Esta cantidad puede ser 100 mensajes por instancia, 120 más 80, o cualquier combinación que sume hasta 200 o más.

Esta configuración la puede realizar en Azure Portal, en el panel Configuración. Para los conjuntos de escalado de máquinas virtuales, puede actualizar la configuración de escalabilidad automática en la plantilla de Resource Manager para usar metricName como ApproximateMessageCount y pasar el identificador de la cola de almacenamiento como metricResourceUri.

Por ejemplo, con una cuenta de almacenamiento clásico el parámetro de escalabilidad automática metricTrigger incluiría lo siguiente:

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

En el caso de una cuenta de almacenamiento (no clásica), metricTrigger incluiría lo siguiente:

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

Métricas más usadas de Service Bus

Puede escalar según la longitud de la cola de Azure Service Bus, que es el número de mensajes de dicha cola. La longitud de cola de Service Bus es una métrica especial y el umbral es el número de mensajes por instancia. Por ejemplo, si hay dos instancias y el umbral está establecido en 100, el escalado se produce cuando el número total de mensajes de la cola es 200. Esta cantidad puede ser 100 mensajes por instancia, 120 más 80, o cualquier combinación que sume hasta 200 o más.

Para los conjuntos de escalado de máquinas virtuales, puede actualizar la configuración de escalabilidad automática en la plantilla de Resource Manager para usar metricName como ActiveMessageCount y pasar el identificador de la cola de Service Bus como metricResourceUri.

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

Nota:

Para Service Bus, el concepto de grupo de recursos no existe. Azure Resource Manager crea un grupo de recursos predeterminado por región. El grupo de recursos suele tener el formato Default-ServiceBus-[region]. Por ejemplo, Default-ServiceBus-EastUS, Default-ServiceBus-WestUS y Default-ServiceBus-AustraliaEast.