Métricas comuns de dimensionamento automático do Azure Monitor

O dimensionamento automático do Azure Monitor permite que você aumente ou reduza número de instâncias em execução com base nos dados de telemetria ou métricas. O dimensionamento pode ser baseado em qualquer métrica, até mesmo em métricas de um recurso diferente. Por exemplo, dimensione um Conjunto de Dimensionamento de Máquinas Virtuais com base na quantidade de tráfego em um firewall.

Este artigo descreve as métricas que são comumente usadas para disparar eventos de escala.

O dimensionamento automático do Azure dá suporte a diversos tipos de recursos. Para obter mais informações sobre recursos com suporte, consulte recursos com suporte no dimensionamento automático.

Para todos os recursos, você pode obter uma lista das métricas disponíveis usando o PowerShell ou a CLI do Azure

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

Computar métricas para VMs com base no Resource Manager

Por padrão, as máquinas virtuais baseadas no Azure Resource Manager e os Conjuntos de Dimensionamento de Máquinas Virtuais emitem métricas básicas (no nível do host). Além disso, quando você configura a coleta de dados de diagnóstico para uma VM do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais, a extensão de Diagnóstico do Azure também emite contadores de desempenho de SO convidado. Esses contadores são comumente conhecidos como "métricas de SO convidado". Você usa todas essas métricas em regras de dimensionamento automático.

Se você estiver usando Conjuntos de Dimensionamento de Máquinas Virtuais e não vir uma métrica específica listada, provavelmente ela está desabilitada em sua extensão de diagnóstico.

Se uma métrica específica não estiver sendo amostrada ou transferida na frequência desejada, você poderá atualizar a configuração de diagnóstico.

Se qualquer um dos casos anteriores for verdadeiro, consulte usar o PowerShell para habilitar o Diagnóstico do Microsoft Azure em uma máquina virtual executando o Windows para configurar e atualizar sua extensão de diagnóstico de VM do Azure para habilitar a métrica. O artigo também inclui um arquivo de configuração de diagnóstico de exemplo.

Métricas de host para VMs Windows e Linux baseadas no Resource Manager

As seguintes métricas de nível de host são emitidas por padrão para Conjuntos de Dimensionamento de Máquina Virtual e VM do Azure nas instâncias do Windows e do Linux. Essas métricas descrevem sua VM do Azure, mas são coletadas do host da VM do Azure em vez de por meio do agente instalado na VM convidada. Você pode usar essas métricas em regras de escalonamento automático.

Métricas de SO convidado de VMs do Windows baseadas no Resource Manager

Quando você cria uma VM no Azure, o diagnóstico é habilitado usando a extensão de Diagnóstico. A extensão Diagnostics emite um conjunto de métricas obtidas de dentro da VM. Isso significa que você pode dimensionar automaticamente as métricas que não são emitidas por padrão.

Você pode criar um alerta para as métricas a seguir:

Nome da métrica Unidade
\Processor(_Total)% Tempo do Processador Porcentagem
\Processor(_Total)% Tempo Privilegiado Porcentagem
\Processor(_Total)% Tempo de Usuário Porcentagem
\Informações do Processador (_Total)\Frequência do Processador Contagem
\Sistema\Processos Contagem
\Processo(_Total)\Contagem de Thread Contagem
\Processo(_Total)\Contagem de Manipulador Contagem
\Memory% Bytes Confirmados em Uso Porcentagem
\Memória\Bytes Disponíveis Bytes
\Memória\Bytes Confirmados Bytes
\Memória\Limite de Confirmação Bytes
\Memória\Bytes de Pool Pagináveis Bytes
\Memória\Bytes de Pool Não Pagináveis Bytes
\PhysicalDisk(_Total)% Tempo de Disco Porcentagem
\PhysicalDisk(_Total)% Tempo de Leitura de Disco Porcentagem
\PhysicalDisk(_Total)% Tempo de Gravação de Disco Porcentagem
\Disco físico(_Total)\Transferências do disco/seg CountPerSecond
\PhysicalDisk(_Total)\Leituras de Disco/s CountPerSecond
\PhysicalDisk(_Total)\Gravações de Disco/s CountPerSecond
\PhysicalDisk(_Total)\Bytes de Disco/s BytesPerSecond
\PhysicalDisk(_Total)\Bytes de Leitura de Disco/s BytesPerSecond
\PhysicalDisk(_Total)\Bytes de Gravação de Disco/s BytesPerSecond
\PhysicalDisk(_Total)\Comprimento Médio da Fila de Disco Contagem
\PhysicalDisk(_Total)\Comprimento Médio da Fila de Leitura de Disco Contagem
\PhysicalDisk(_Total)\Comprimento Médio da Fila de Gravação de Disco Contagem
\LogicalDisk(_Total)% Espaço Livre Porcentagem
\LogicalDisk(_Total)\Megabytes Livres Contagem

Métricas de SO convidado de VMs Linux

Quando você cria uma VM no Azure, o diagnóstico é habilitado por padrão usando a extensão de diagnóstico.

Você pode criar um alerta para as métricas a seguir:

Nome da métrica Unidade
\Memory\AvailableMemory Bytes
\Memory\PercentAvailableMemory Porcentagem
\Memory\UsedMemory Bytes
\Memory\PercentUsedMemory Porcentagem
\Memory\PercentUsedByCache Porcentagem
\Memory\PagesPerSec CountPerSecond
\Memory\PagesReadPerSec CountPerSecond
\Memory\PagesWrittenPerSec CountPerSecond
\Memory\AvailableSwap Bytes
\Memory\PercentAvailableSwap Porcentagem
\Memory\UsedSwap Bytes
\Memory\PercentUsedSwap Porcentagem
\Processor\PercentIdleTime Porcentagem
\Processor\PercentUserTime Porcentagem
\Processor\PercentNiceTime Porcentagem
\Processor\PercentPrivilegedTime Porcentagem
\Processor\PercentInterruptTime Porcentagem
\Processor\PercentDPCTime Porcentagem
\Processor\PercentProcessorTime Porcentagem
\Processor\PercentIOWaitTime Porcentagem
\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 Contagem
\NetworkInterface\BytesTransmitted Bytes
\NetworkInterface\BytesReceived Bytes
\NetworkInterface\PacketsTransmitted Contagem
\NetworkInterface\PacketsReceived Contagem
\NetworkInterface\BytesTotal Bytes
\NetworkInterface\TotalRxErrors Contagem
\NetworkInterface\TotalTxErrors Contagem
\NetworkInterface\TotalCollisions Contagem

Métricas do Serviço de Aplicativo (farm de servidores) comumente usadas

Você também pode executar o dimensionamento automático com base em métricas comuns do servidor Web, como o comprimento da fila HTTP. O nome da métrica é HttpQueueLength. A seção a seguir lista as métricas de farm de servidores (Serviço de Aplicativo) disponíveis.

Métricas de aplicativos Web

para Aplicativos Web, você pode alertar ou dimensionar por essas métricas.

Nome da métrica Unidade
CpuPercentage Porcentagem
MemoryPercentage Porcentagem
DiskQueueLength Contagem
HttpQueueLength Contagem
BytesReceived Bytes
BytesSent Bytes

Métricas de armazenamento usadas normalmente

Você pode dimensionar pelo comprimento da fila de Armazenamento do Microsoft Azure, que é o número de mensagens na fila de armazenamento. O comprimento da fila de armazenamento é uma métrica especial e o limite é o número de mensagens por instância. Por exemplo se houver duas instâncias e o limite for definido como 100, ocorrerá um dimensionado quando o número total de mensagens na fila for 200. Essa quantidade pode ser de 100 mensagens por instância, 120 mais 80, ou qualquer outra combinação que soma 200 ou mais.

Defina essa configuração no portal do Azure no painel Configurações. Para Conjuntos de Dimensionamento de Máquinas Virtuais, você pode atualizar a configuração de dimensionamento automático no modelo do Azure Resource Manager para usar metricName como ApproximateMessageCount e passar a ID da fila de armazenamento como metricResourceUri.

Por exemplo, com uma conta de armazenamento clássico, a configuração de dimensionamento automático metricTrigger inclui:

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

Para uma conta de armazenamento (não clássica), a configuração metricTrigger incluiria:

"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 do Barramento de Serviço usadas frequentemente

Você pode dimensionar pelo comprimento da fila do Barramento de Serviço do Azure, que é o número de mensagens na fila do Barramento de Serviço. O comprimento da fila do Barramento de Serviço é uma métrica especial e o limite é o número de mensagens por instância. Por exemplo se houver duas instâncias e o limite for definido como 100, o dimensionamento ocorrerá quando o número total de mensagens na fila for 200. Essa quantidade pode ser de 100 mensagens por instância, 120 mais 80, ou qualquer outra combinação que soma 200 ou mais.

Para Conjuntos de Dimensionamento de Máquinas Virtuais, você pode atualizar a configuração de dimensionamento automático no modelo do Azure Resource Manager para usar metricName como ActiveMessageCount e passar a ID da fila do Barramento de Serviço como metricResourceUri.

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

Observação

Para o Barramento de Serviço, o conceito de grupo de recursos não existe. O Azure Resource Manager cria um grupo de recursos padrão por região. O grupo de recursos geralmente está no formato Default-ServiceBus-[region]. Exemplos são Default-ServiceBus-EastUS, Default-ServiceBus-WestUS e Default-ServiceBus-AustraliaEast.