Solucionar problemas de dimensionamento automático do Azure Monitor

O dimensionamento automático do Azure Monitor ajuda você a ter a quantidade certa de recursos em execução para lidar com a carga em seu aplicativo. Ele permite que você adicione recursos para lidar com aumentos na carga e também economizar dinheiro removendo recursos que estão ociosos. Você pode dimensionar com base em uma agenda, uma data-hora fixa ou uma métrica de recurso escolhida. Para obter mais informações, consulte Descrição geral do dimensionamento automático.

O serviço de dimensionamento automático fornece métricas e logs para ajudá-lo a entender quais ações de escala ocorreram e a avaliação das condições que levaram a essas ações. Você pode encontrar respostas para perguntas como:

  • Por que meu serviço foi expandido ou expandido?
  • Porque é 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 para ser dimensionada?

Conjuntos de dimensionamento de máquina virtual 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, Azure VM CLI Delete ou Azure VM Rest API Delete onde a operação é executada em uma VM individual.

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

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

Dimensionamento automático de métricas

O Autoscale fornece quatro métricas para entender seu funcionamento:

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

Você pode usar o explorador de métricas para criar um gráfico das métricas anteriores em um só lugar. O gráfico deve mostrar:

  • Métrica real.
  • Métrica como vista/calculada pelo motor de escala automática.
  • Limiar para uma ação de escala.
  • Alteração da capacidade.

Exemplo 1: Analisar uma regra de dimensionamento automático

Uma configuração de dimensionamento automático para um conjunto de dimensionamento de máquina virtual:

  • Dimensiona-se quando a percentagem média de CPU de um conjunto é superior a 70% durante 10 minutos.
  • Escala quando a porcentagem de CPU do conjunto é inferior a 5% por mais de 10 minutos.

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

O gráfico a seguir mostra uma métrica de Porcentagem de CPU para um conjunto de escala de máquina virtual.

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

O próximo gráfico mostra a métrica Valor Métrico Observado para 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 Limiar Métrico e Capacidade Observada. A métrica Limiar Métrico na parte superior da regra de expansão é 70. A métrica Capacidade Observada na parte inferior mostra o número de instâncias ativas, que atualmente é 3.

Screenshot that shows Metric Threshold and Observed Capacity.

Nota

Você pode filtrar o Limite de Métrica pela regra de dimensionamento (aumento) da dimensão da regra de gatilho de métrica para ver o limite de expansão e pela regra de expansão (diminuição).

Exemplo 2: Dimensionamento automático avançado para um conjunto de dimensionamento de máquina virtual

Uma configuração de dimensionamento automático permite que um recurso de conjunto de dimensionamento de máquina virtual seja dimensionado com base em sua própria métrica de Fluxos de Saída . A opção Dividir métrica por contagem de instâncias para o limite de métrica está selecionada.

A regra de ação de escala é que, se o valor de Fluxo de saída por instância for maior que 10, o serviço de dimensionamento automático deverá ser expandido por 1 instância .

Nesse caso, o valor métrico observado do mecanismo de escala automática é calculado como o valor métrico 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 métricos.

O gráfico Fluxos de saída médios 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 Métrico Observado no meio é 3 porque há 2 instâncias ativas, e 6 dividido por 2 é 3.
  • A métrica Capacidade Observada na parte inferior mostra a contagem de instâncias vista por um mecanismo de dimensionamento automático.
  • A métrica Limiar Métrico 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 escala, você poderá usar a divisão ou a opção adicionar filtro no gráfico do explorador de métricas para examinar uma métrica por uma fonte ou regra específica. Para obter mais informações sobre como dividir um gráfico métrico, consulte Recursos avançados de gráficos métricos - divisão.

Exemplo 3: Compreender eventos de dimensionamento automático

Na tela de configuração de dimensionamento automático, vá para a guia Histórico de execução para ver as ações de dimensionamento mais recentes. A guia também mostra a mudança na Capacidade Observada ao longo do tempo. Para encontrar mais informações sobre todas as ações de dimensionamento automático, incluindo operações como atualizar/excluir configurações de dimensionamento automático, exiba o registro de atividades e filtre por operações de dimensionamento automático.

Screenshot that shows autoscale settings run history.

Dimensionar automaticamente os logs de recursos

O serviço de dimensionamento automático fornece logs de recursos. Existem duas categorias de logs:

  • Avaliações de escala automática: O mecanismo de dimensionamento automático registra entradas de log para cada avaliação de condição 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 escala ou não.
  • Ações de dimensionamento automático: o mecanismo registra os eventos de ação de dimensionamento iniciados pelo serviço de dimensionamento automático e os resultados dessas ações de dimensionamento (sucesso, falha e quanto dimensionamento ocorreu conforme visto pelo serviço de dimensionamento automático).

Como em qualquer serviço com suporte do Azure Monitor, você pode usar as configurações de diagnóstico para rotear esses logs para:

  • Seu espaço de trabalho do Log Analytics para análises detalhadas.
  • Hubs de Eventos do Azure e, em seguida, para ferramentas que não são do Azure.
  • Sua conta de Armazenamento do Azure para arquivamento.

Screenshot that shows autoscale diagnostic settings.

A captura de tela anterior mostra o painel de configurações de Diagnóstico de dimensionamento automático do portal do Azure. Lá, você pode selecionar a guia Logs de Diagnóstico/Recursos 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 e 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 de solução de problemas, recomendamos rotear seus logs para os Logs do Azure Monitor (Log Analytics) por meio de um espaço de trabalho ao criar a configuração de dimensionamento automático. Esse processo é mostrado na captura de tela na seção anterior. Você pode validar as avaliações e dimensionar melhor as ações usando o Log Analytics.

Depois de configurar os logs de dimensionamento automático para serem enviados para o espaço de trabalho do Log Analytics, você pode executar as seguintes consultas para verificar os logs.

Para começar, tente esta consulta para exibir os logs de avaliação de escala automática mais recentes:

AutoscaleEvaluationsLog
| limit 50

Ou tente a seguinte consulta para exibir os logs de ação de escala mais recentes:

AutoscaleScaleActionsLog
| limit 50

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

Ocorreu uma ação de escala que você não esperava

Primeiro, execute a consulta para uma ação de escala para encontrar a ação de escala em que você está interessado. Se for a ação de escala mais recente, use a seguinte consulta:

AutoscaleScaleActionsLog
| take 1

Selecione o CorrelationId campo no registro de ações de escala. Use CorrelationId para encontrar o log de avaliação correto. A execução da consulta a seguir exibe todas as regras e condições que foram avaliadas e levaram a essa ação de escala.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId>"

Qual perfil causou uma ação de escala?

Ocorreu uma ação dimensionada, mas você tem regras e perfis sobrepostos e precisa rastrear qual deles causou a ação.

Encontre a ação da escala, conforme explicado CorrelationId no exemplo 1. Em seguida, 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

Toda a avaliação 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 escala não ocorreu

Você esperava uma ação de escala e ela não ocorreu. Pode não haver eventos ou logs de ação de escala.

Revise as métricas de dimensionamento automático se estiver usando uma regra de escala baseada em métricas. É possível que o valor da Métrica Observada ou da Capacidade Observada não seja o que você esperava que fossem, então a regra da escala não foi acionada. Você ainda veria avaliações, mas não uma regra de expansão. Também é possível que o tempo de resfriamento tenha impedido que uma ação de escala ocorresse.

Revise os logs de avaliação de escala automática durante o período de tempo em que você esperava que a ação de escala ocorresse. Analise todas as avaliações que fez e por que decidiu não desencadear uma ação de escala.

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 um caso em que o serviço de dimensionamento automático executou a ação de escala, mas o sistema decidiu não dimensionar ou não concluiu a ação de escala. Use esta consulta para localizar as ações de escala com falha:

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

Crie regras de alerta para ser notificado sobre ações ou falhas de dimensionamento automático. Você também pode criar regras de alerta para ser notificado em eventos de dimensionamento automático.

Esquema de logs de recursos de dimensionamento automático

Para obter mais informações, consulte Dimensionamento automático de logs de recursos.

Próximos passos

Leia informações sobre as práticas recomendadas de dimensionamento automático.