Solução de problemas de dimensionamento automático do Azure Monitor

O dimensionamento automático do Azure Monitor permite ter a quantidade certa de recursos em execução para lidar com a carga do seu aplicativo. Ele permite adicionar recursos para lidar com os aumentos de carga e também economizar dinheiro removendo recursos que estão ociosos. Você pode fazer o dimensionamento com base em um agendamento, em data/hora fixas ou na métrica de recurso que desejar. Para obter mais informações, consulte Visão geral do dimensionamento automático.

O serviço de dimensionamento automático oferece métricas e logs que ajudam a entender quais ações de dimensionamento ocorreram e a avaliação das condições que levaram a essas ações. Veja respostas para perguntas como:

  • Por que o meu serviço foi escalado ou reduzido horizontalmente?
  • Por que o meu serviço não foi dimensionado?
  • Por que uma ação de dimensionamento automático falhou?
  • Por que uma ação de dimensionamento automático está demorando?

Conjuntos de Dimensionamento de Máquinas Virtuais Flex

As ações de dimensionamento automático são atrasadas até várias horas depois que uma ação de dimensionamento manual é aplicada a um recurso Flex Microsoft.Compute/virtualMachineScaleSets (VMSS) para um conjunto específico de operações de Máquina Virtual.
Por exemplo, exclusão da CLI da VM do Azure ou exclusão da API Rest da VM do Azure em que a operação é executada em uma VM individual.

Nesses casos, o serviço de dimensionamento automático não está ciente das operações de VM individuais.

Para evitar esse cenário, use a mesma operação, mas no nível do Conjunto de Dimensionamento de Máquinas Virtuais. Por exemplo, a instância de exclusão da CLI do VMSS do Azure ou a Instância de Exclusão da API Rest do VMSS do Azure. O dimensionamento automático detecta a alteração da contagem de instâncias no Conjunto de Dimensionamento de Máquinas Virtuais e executa as ações de dimensionamento apropriadas.

Métricas do dimensionamento automático

O dimensionamento automático fornece quatro métricas para a compreensão da operação:

  • Valor de métrica observado: o valor da métrica na qual você escolheu realizar a ação de dimensionamento, observada ou calculada pelo mecanismo de dimensionamento automático. Como uma configuração de dimensionamento automático pode ter várias regras e, portanto, várias fontes de métricas, você pode filtrar usando a "fonte da métrica" como uma dimensão.
  • Limite da métrica: o limite definido para tomar a ação de dimensionamento. Como uma configuração de dimensionamento automático pode ter várias regras e, portanto, várias fontes de métricas, você pode filtrar usando "regra de métrica" como uma dimensão.
  • Capacidade observada: o número ativo de instâncias do recurso de destino observado pelo mecanismo de dimensionamento automático.
  • Ações de dimensionamento iniciadas: o número de ações de expansão e redução horizontal iniciadas pelo mecanismo de dimensionamento automático. Você pode filtrar por ações de escala ou redução horizontal.

Use o Metrics Explorer para criar o gráfico das métricas anteriores em um só lugar. O gráfico deve mostrar:

  • Métrica real.
  • Métrica observada/computada pelo mecanismo de dimensionamento automático.
  • Limite para uma ação de dimensionamento.
  • Alteração na capacidade.

Exemplo 1: analisar uma regra de dimensionamento automático

Uma configuração de dimensionamento automático de um conjunto de dimensionamento de máquinas virtuais:

  • Escala horizontalmente quando o percentual médio de CPU de um conjunto fica maior que 70% durante dez minutos.
  • Dimensiona quando o percentual de CPU do conjunto fica inferior a 5% durante mais de dez minutos.

Vamos examinar as métricas do serviço de dimensionamento automático.

O gráfico a seguir mostra uma métrica de Percentual de CPU de um conjunto de dimensionamento de máquinas virtuais.

Screenshot that shows a virtual machine scale set percentage CPU example.

O próximo gráfico mostra a métrica Valor da Métrica Observada de uma configuração de dimensionamento automático.

Screenshot that shows another virtual machine scale set percentage CPU example.

O gráfico final mostra as métricas Limite de Métrica e Capacidade Observada. A métrica Limite de Métrica na parte superior da regra de escala horizontal é 70. A métrica Capacidade Observada na parte inferior mostra o número de instâncias ativas, no momento, três.

Screenshot that shows Metric Threshold and Observed Capacity.

Observação

Você pode filtrar o Limite de Métrica pela regra de gatilho de métrica, regra de escala horizontal (aumento), para ver o limite de escala horizontal e pela regra de redução horizontal (diminuição).

Exemplo 2: dimensionamento automático avançado de um conjunto de dimensionamento de máquinas virtuais

Uma configuração de dimensionamento automático permite que um recurso de conjunto de dimensionamento de máquinas virtuais seja escalado horizontalmente com base nas próprias métricas de Fluxos de saída. A opção Dividir métrica por contagem de instâncias do limite de métrica está marcada.

A regra de ação de dimensionamento é: se o valor do Fluxo de saída por instância for maior que dez, o serviço de dimensionamento automático deverá escalar horizontalmente em uma instância.

Nesse caso, o valor da métrica observada do mecanismo de dimensionamento automático é calculado como o valor da métrica real dividido pelo número de instâncias. Se o valor da métrica observada for menor que o limite, nenhuma ação de expansão será iniciada.

As capturas de tela a seguir mostram dois gráficos de métrica.

O gráfico Fluxos médios de saída mostra o valor da métrica Fluxos de saída. O valor real é 6.

Screenshot that shows the Average Outbound Flows page with an example of a virtual machine scale set autoscale metrics chart.

O gráfico a seguir mostra alguns valores:

  • A métrica Valor de Métrica Observado no meio é 3 porque há duas instâncias ativas, e 6 dividido por 2 é igual a 3.
  • A métrica Capacidade Observada na parte inferior mostra a contagem de instâncias observada por um mecanismo de dimensionamento automático.
  • A métrica Limite de Métrica na parte superior é definida como 10.Screenshot that shows a virtual machine scale set autoscale metrics charts example.

Se houver várias regras de ação de dimensionamento, use a divisão ou a opção Adicionar filtro no gráfico do Metrics Explorer para examinar a métrica de acordo com uma fonte ou regra específica. Para obter mais informações de como dividir um gráfico de métricas, confira Recursos avançados de gráficos de métrica – Divisão.

Exemplo 3: entender os eventos de dimensionamento automático

Na tela de configuração do dimensionamento automático, navegue até a guia Histórico de execuções para ver as ações mais recentes. A guia também mostra a alteração na Capacidade observada ao longo do tempo. Para ver mais informações sobre todas as ações de dimensionamento automático, inclusive operações como atualizar/excluir as configurações de dimensionamento automático, ver o log de atividades e filtrar por operações de dimensionamento automático.

Screenshot that shows autoscale settings run history.

Logs de recurso do dimensionamento automático

O serviço de dimensionamento automático oferece logs de recurso. Há duas categorias de logs:

  • Avaliações do dimensionamento automático: o mecanismo de dimensionamento automático registra entradas de log para cada avaliação de condição única sempre que faz uma verificação. A entrada inclui detalhes sobre os valores observados das métricas, as regras avaliadas e se a avaliação resultou em uma ação de dimensionamento ou não.
  • Ações de dimensionamento automático: o mecanismo registra eventos de ação de dimensionamento iniciados pelo serviço de dimensionamento automático e os resultados dessas ações (êxito, falha e a quantidade de dimensionamento ocorrida, observada pelo serviço).

Assim como nos outros serviços compatíveis com o Azure Monitor, você pode usar as Configurações de Diagnóstico para rotear esses logs:

  • O workspace do Log Analytics para análise detalhada.
  • Hubs de Eventos do Azure e depois ferramentas que não são do Azure.
  • Sua conta de Armazenamento do Azure para arquivamentos.

Screenshot that shows autoscale diagnostic settings.

A captura de tela anterior mostra o painel Configurações de diagnóstico de dimensionamento automático do portal do Azure. Lá, você pode selecionar a guia Logs de Diagnóstico/Recurso e habilitar a coleta e o roteamento de logs. Você também pode executar a mesma ação usando a API REST, a CLI do Azure, o PowerShell, os modelos do Azure Resource Manager para configurações de diagnóstico escolhendo o tipo de recurso como Microsoft.Insights/AutoscaleSettings.

Solucionar problemas usando logs de dimensionamento automático

Para obter a melhor experiência possível ao solucionar problemas, é recomendável rotear os logs ao Azure Monitor (Log Analytics) por meio de um workspace ao criar a configuração de dimensionamento automático. Esse processo aparece na captura de tela da seção anterior. Você pode validar as ações de avaliação e dimensionamento usando o Log Analytics.

Depois de configurar os logs de dimensionamento automático para que sejam enviados ao workspace do Log Analytics, execute as consultas a seguir para verificar os logs.

Para começar, experimente esta consulta para exibir os logs mais recentes de avaliação do dimensionamento automático:

AutoscaleEvaluationsLog
| limit 50

Ou experimente a consulta a seguir para exibir os logs de ação de dimensionamento mais recentes:

AutoscaleScaleActionsLog
| limit 50

Use as seções a seguir para responder a essas perguntas.

Ocorreu uma ação de dimensionamento que eu não esperava

Primeiro, execute a consulta de uma ação de dimensionamento para localizar aquela que interessa. Se for a ação de dimensionamento mais recente, use a seguinte consulta:

AutoscaleScaleActionsLog
| take 1

Selecione o campo CorrelationId do log de ações de dimensionamento. Use CorrelationId para localizar o log de avalição certo. A execução da consulta a seguir exibe todas as regras e condições que foram avaliadas e levaram a essa ação de dimensionamento.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId>"

Qual perfil causou uma ação de dimensionamento?

Ocorreu uma ação de dimensionamento, mas você tem regras e perfis sobrepostos e precisa rastrear o que causou a ação.

Localize a CorrelationId da ação de dimensionamento, conforme explicado no exemplo 1. Depois, execute a consulta nos logs de avaliação para saber mais sobre o perfil.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId_Guid>"
| where ProfileSelected == true
| project ProfileEvaluationTime, Profile, ProfileSelected, EvaluationResult

A avaliação completa do perfil também pode ser melhor compreendida usando a seguinte consulta:

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName contains == "profileEvaluation"
| project OperationName, Profile, ProfileEvaluationTime, ProfileSelected, EvaluationResult

Uma ação de dimensionamento não ocorreu

Você esperava uma ação de dimensionamento que não ocorreu. Pode não haver nenhum evento ou log da ação de dimensionamento.

Examine as métricas de dimensionamento automático se estiver usando uma regra de dimensionamento baseada em métrica. É possível que o valor de Métrica observada ou de Capacidade observada não seja o esperado e que, portanto, a regra de dimensionamento não tenha sido disparada. Você ainda veria avaliações, mas não uma regra de expansão. Também é possível que o tempo de resfriamento tenha impedido a realização de uma ação de dimensionamento.

Examine os logs de avaliação de dimensionamento automático durante o período em que a ação de dimensionamento deveria ter ocorrido. Examine todas as avaliações realizadas e por que o serviço decidiu não disparar a ação.

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName == "MetricEvaluation" or OperationName == "ScaleRuleEvaluation"
| project OperationName, MetricData, ObservedValue, Threshold, EstimateScaleResult

Falha na ação de dimensionamento

Pode haver casos em que o serviço de dimensionamento automático realizou a ação, mas o sistema decidiu não dimensionar ou falhou em concluir a ação. Use esta consulta para localizar as ações de dimensionamento com falha:

AutoscaleScaleActionsLog
| where ResultType == "Failed"
| project ResultDescription

Crie regras de alerta para ser notificado de falhas ou ações de dimensionamento automático. Alternativamente, crie regras de alerta para receber notificações sobre eventos de dimensionamento automático.

Esquema de logs de recursos de dimensionamento automático

Para obter mais informações, confira Logs do recurso de dimensionamento automático.

Próximas etapas

Leia sobre as práticas recomendadas de dimensionamento automático.