Criar um alerta de métrica com limites dinâmicos

Os limites dinâmicos aplicam o machine learning avançado e usam um conjunto de algoritmos e métodos para:

  • Saber o comportamento histórico das métricas
  • Analisar métricas ao longo do tempo e identificar padrões como padrões por hora, diários ou semanais
  • Reconhecer anomalias que indicam possíveis problemas de serviço
  • Calcular o limite mais apropriado para a métrica

Ao usar limites dinâmicos, você não precisa saber o limite "certo" para cada métrica, pois os limites dinâmicos calculam os limites mais apropriados para você.

Recomendamos configurar regras de alerta com limites dinâmicos nessas métricas:

  • Percentual de CPU da máquina virtual
  • Tempo de execução da solicitação HTTP do Application Insights

Os limites dinâmicos ajudam a:

  • Criar alertas escalonáveis para centenas de séries de métricas com uma regra de alerta. Se você tiver menos regras de alerta, gastará menos tempo para criar e gerenciar regras de alertas. Alertas escalonáveis são especialmente úteis para várias dimensões ou para vários recursos, como para todos os recursos em uma assinatura.
  • Crie regras sem precisar saber qual limite configurar. Usando limites dinâmicos, você pode configurar alertas de métrica usando conceitos de alto nível, sem ter amplo conhecimento de domínio sobre a métrica
  • Configurar alertas de métrica usando conceitos de alto nível sem amplo conhecimento de domínio sobre a métrica
  • Evitar ruído (baixa precisão) ou limites amplos (baixo recall) que não têm um padrão esperado
  • Manipular métricas com ruído (como CPU ou memória do computador) e métricas com baixa dispersão (como disponibilidade e taxa de erros)

Você pode usar limites dinâmicos:

  • na maioria das métricas personalizadas e da plataforma do Azure Monitor
  • em métricas comuns de aplicativo e infraestrutura
  • em métricas ruidosas, como CPU do computador ou memória
  • métricas com baixa dispersão, como disponibilidade e taxa de erro Ver métricas sem suporte por limites dinâmicos para uma lista de métricas que não têm suporte por limites dinâmicos.

Você pode configurar limites dinâmicos usando:

Cálculo e visualização do limite de alerta

Quando uma regra de alerta é criada pela primeira vez, os limites dinâmicos usam 10 dias de dados históricos para calcular padrões sazonais por hora ou diários. O gráfico que você vê na visualização de alerta reflete esses dados. Depois que uma regra de alerta é criada, os limites dinâmicos usam continuamente todos os dados históricos disponíveis para aprender e ajustam os limites para serem mais precisos. Após três semanas, os limites dinâmicos também têm dados suficientes para identificar padrões semanais e o modelo é ajustado para incluir sazonalidade semanal. As regras de alerta que usam limites dinâmicos não disparam um alerta antes de coletar três dias e pelo menos 30 amostras de dados de métrica.

O sistema reconhece automaticamente interrupções prolongadas e as remove do algoritmo de aprendizado de limite. Se houver uma interrupção prolongada, os limites dinâmicos entenderão os dados e detectarão problemas do sistema com o mesmo nível de confidencialidade de antes da interrupção ocorrer.

Considerações ao usar limites dinâmicos

  • Para garantir um cálculo de limite preciso, os alertas que usam limites dinâmicos não disparam um alerta antes de coletar três dias e pelo menos 30 amostras de dados de métrica. Portanto, novos recursos ou recursos sem dados de métrica não disparam um alerta até que dados suficientes estejam disponíveis.
  • Os limites dinâmicos precisam de pelo menos três semanas de dados históricos para detectar sazonalidade semanal. Alguns padrões detalhados, como padrões a cada duas horas ou semi-semanal, podem não ser detectados.
  • Se o comportamento de uma métrica tiver sido alterado recentemente, as alterações não serão imediatamente refletidas no limite dinâmico (limites superiores e inferiores). As bordas são calculadas com base nos dados de métrica dos últimos 10 dias. Ao exibir as bordas do Limite dinâmico para uma determinada métrica, examine a tendência da métrica na última semana e não apenas nas horas ou dias recentes.
  • Limites dinâmicos são bons para detectar desvios significativos, não problemas que se desenvolvem lentamente. Alterações de comportamento lentas provavelmente não dispararão um alerta.

Problemas conhecidos com confidencialidade de limite dinâmico

  • Se uma regra de alerta que usa limites dinâmicos for muito ruidosa ou disparar demais, talvez seja necessário reduzir a sensibilidade da regra de alerta de limites dinâmicos. Use uma das seguintes opções:

    • Sensibilidade do limite: defina a sensibilidade como Baixa para ter mais tolerância a desvios.
    • Número de violações (em Configurações avançadas): configure a regra de alerta para disparar somente se vários desvios ocorrerem em um determinado período de tempo. Essa configuração torna a regra menos suscetível a desvios temporários.
  • Você pode perceber que uma regra de alerta que usa limites dinâmicos não é disparada ou não é sensível o suficiente, mesmo que ela esteja configurada com alta sensibilidade. Isso pode acontecer quando a distribuição da métrica é muito irregular. Considere uma das seguintes soluções para corrigir o problema:

    • Passe a monitorar uma métrica complementar adequada ao seu cenário, se aplicável. Por exemplo, verifique se há alterações na taxa de sucesso, em vez da taxa de falha.
    • Tente selecionar um valor diferente para Granularidade de agregação (ponto).
    • Verifique se houve alteração drástica no comportamento da métrica nos últimos 10 dias, como uma interrupção. Uma alteração abrupta pode afetar os limites superior e inferior calculados para a métrica e torná-los mais amplos. Aguarde alguns dias até que a interrupção deixe de ser considerada no cálculo dos limites. Você também pode editar a regra de alerta para usar a opção Ignorar dados antes nas Configurações avançadas.
    • Se os dados tiverem sazonalidade semanal, mas não houver histórico suficiente disponível para a métrica, os limites calculados poderão resultar em limites superiores e inferiores mais amplos. Por exemplo, o cálculo pode tratar da mesma maneira os dias da semana e os finais de semana e criar limites amplos que nem sempre se ajustam aos dados. Esse problema deve se resolver depois que houver um histórico de métricas suficiente disponível. Então, a sazonalidade correta é detectada e os limites calculados são atualizados de acordo.
  • Quando um valor de métrica exibe grandes flutuações, os limites dinâmicos podem compilar um modelo amplo em torno dos valores de métrica, o que pode resultar em um limite menor ou maior do que o esperado. Esse cenário pode ocorrer quando:

    • A sensibilidade estiver definida como baixa.
    • A métrica exibir um comportamento irregular com alta variação, que aparece como picos ou vales nos dados.

    Cogite tornar o modelo menos sensível ao escolher uma sensibilidade maior ou selecionar um Período de retrospectiva maior. Você também pode usar a opção Ignorar dados antes de para excluir uma irregularidade recente dos dados históricos usados para criar o modelo.

Como configurar limites dinâmicos

Siga o procedimento para criar ou editar uma regra de alerta usando estas configurações

  1. Na guia Condições,
    1. No campo Limites, selecione Dinâmico.
    2. No Tipo de agregação, recomendamos que você não selecione Máximo.
    3. No campo Operador, selecione Maior que, a menos que o comportamento represente o uso do aplicativo.
    4. Em Confidencialidade de Limite, selecione Médio ou Baixo para reduzir o ruído do alerta.
    5. No campo verificar a cada, considere reduzir a frequência com base no impacto do alerta nos negócios.
    6. Em Período de retrospectiva, defina a janela de retrospectiva para pelo menos 15 minutos. Por exemplo, se o campo verificar a cada estiver configurado para cinco minutos, o período de retrospectiva deverá ser de pelo menos três minutos ou mais.
  2. Continue com o restante do processo para criar uma regra de alerta.

Observação

Regras de alerta de métrica criadas por meio do portal são criadas no mesmo grupo de recursos que o recurso de destino.

Entenda os gráficos de limites dinâmicos

A seguir está um gráfico mostrando uma métrica, os respectivos limites dinâmicos e alguns alertas acionados quando o valor estava fora dos limites permitidos.

Screenshot that shows a metric, its dynamic thresholds limits, and some alerts that fired.

Use as seguintes informações para interpretar o gráfico:

  • Linha azul: a métrica medida real ao longo do tempo.
  • Área sombreada azul: mostra o intervalo permitido para a métrica. Se os valores de métrica permanecerem dentro desse intervalo, nenhum alerta é disparado.
  • Pontos azuis: se você selecionar parte do gráfico e passar o mouse sobre a linha azul, verá um ponto azul aparecer sob o cursor, mostrando um valor de métrica agregada individual.
  • Pop-up com ponto azul: mostra o valor medido da métrica (o ponto azul) e os valores superior e inferior do intervalo permitido.
  • Ponto vermelho com um círculo preto: mostra o primeiro valor de métrica fora do intervalo permitido. Esse valor dispara um alerta de métrica e o coloca em um estado ativo.
  • Pontos vermelhos: indicam outros valores medidos adicionais fora do intervalo permitido. Eles não vão disparar alertas de métrica adicionais, mas o alerta permanecerá no estado ativo.
  • Área vermelha: mostra a hora quando o valor da métrica estava fora do intervalo permitido. O alerta permanece no estado ativo, desde que os valores medidos subsequentes estejam fora do intervalo permitido, mas nenhum alerta novo seja acionado.
  • Fim da área vermelha: quando a linha azul está de volta dentro dos valores permitidos, a área vermelha é interrompida e a linha de valor medido fica azul. O status do alerta de métrica acionado no momento do ponto vermelho com contorno preto é definido como resolvido.

Métricas sem suporte de limites dinâmicos

Há suporte a limites dinâmicos na maioria das métricas, mas algumas delas não podem usá-los.

A tabela a seguir lista as métricas que sem suporte nos limites dinâmicos.

Tipo de recurso Nome da métrica
Microsoft.ClassicStorage/storageAccounts UsedCapacity
Microsoft.ClassicStorage/storageAccounts/blobServices BlobCapacity
Microsoft.ClassicStorage/storageAccounts/blobServices BlobCount
Microsoft.ClassicStorage/storageAccounts/blobServices IndexCapacity
Microsoft.ClassicStorage/storageAccounts/fileServices FileCapacity
Microsoft.ClassicStorage/storageAccounts/fileServices FileCount
Microsoft.ClassicStorage/storageAccounts/fileServices FileShareCount
Microsoft.ClassicStorage/storageAccounts/fileServices FileShareSnapshotCount
Microsoft.ClassicStorage/storageAccounts/fileServices FileShareSnapshotSize
Microsoft.ClassicStorage/storageAccounts/fileServices FileShareQuota
Microsoft.Compute/disks Bytes de Leitura de Disco Composta/s
Microsoft.Compute/disks Operações de Leitura de Disco Composta/s
Microsoft.Compute/disks Bytes de Gravação em Disco Composta/s
Microsoft.Compute/disks Operações de Gravação em Disco Composta/s
Microsoft.ContainerService/managedClusters NodesCount
Microsoft.ContainerService/managedClusters PodCount
Microsoft.ContainerService/managedClusters CompletedJobsCount
Microsoft.ContainerService/managedClusters RestartingContainerCount
Microsoft.ContainerService/managedClusters OomKilledContainerCount
Microsoft.Devices/IotHubs TotalDeviceCount
Microsoft.Devices/IotHubs ConnectedDeviceCount
Microsoft.Devices/IotHubs TotalDeviceCount
Microsoft.Devices/IotHubs ConnectedDeviceCount
Microsoft.DocumentDB/databaseAccounts CassandraConnectionClosures
Microsoft.EventHub/clusters Tamanho
Microsoft.EventHub/namespaces Tamanho
Microsoft.IoTCentral/IoTApps connectedDeviceCount
Microsoft.IoTCentral/IoTApps provisionedDeviceCount
Microsoft.Kubernetes/connectedClusters NodesCount
Microsoft.Kubernetes/connectedClusters PodCount
Microsoft.Kubernetes/connectedClusters CompletedJobsCount
Microsoft.Kubernetes/connectedClusters RestartingContainerCount
Microsoft.Kubernetes/connectedClusters OomKilledContainerCount
Microsoft.MachineLearningServices/workspaces/onlineEndpoints RequestsPerMinute
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments DeploymentCapacity
Microsoft.Maps/accounts CreatorUsage
Microsoft.Media/mediaservices/streamingEndpoints EgressBandwidth
Microsoft.Network/applicationGateways Produtividade
Microsoft.Network/azureFirewalls Produtividade
Microsoft.Network/expressRouteGateways ExpressRouteGatewayPacketsPerSecond
Microsoft.Network/expressRouteGateways ExpressRouteGatewayNumberOfVmInVnet
Microsoft.Network/expressRouteGateways ExpressRouteGatewayFrequencyOfRoutesChanged
Microsoft.Network/virtualNetworkGateways ExpressRouteGatewayBitsPerSecond
Microsoft.Network/virtualNetworkGateways ExpressRouteGatewayPacketsPerSecond
Microsoft.Network/virtualNetworkGateways ExpressRouteGatewayNumberOfVmInVnet
Microsoft.Network/virtualNetworkGateways ExpressRouteGatewayFrequencyOfRoutesChanged
Microsoft.ServiceBus/namespaces Tamanho
Microsoft.ServiceBus/namespaces Mensagens
Microsoft.ServiceBus/namespaces ActiveMessages
Microsoft.ServiceBus/namespaces DeadletteredMessages
Microsoft.ServiceBus/namespaces ScheduledMessages
Microsoft.ServiceFabricMesh/applications AllocatedCpu
Microsoft.ServiceFabricMesh/applications AllocatedMemory
Microsoft.ServiceFabricMesh/applications ActualCpu
Microsoft.ServiceFabricMesh/applications ActualMemory
Microsoft.ServiceFabricMesh/applications ApplicationStatus
Microsoft.ServiceFabricMesh/applications ServiceStatus
Microsoft.ServiceFabricMesh/applications ServiceReplicaStatus
Microsoft.ServiceFabricMesh/applications ContainerStatus
Microsoft.ServiceFabricMesh/applications RestartCount
Microsoft.Storage/storageAccounts UsedCapacity
Microsoft.Storage/storageAccounts/blobServices BlobCapacity
Microsoft.Storage/storageAccounts/blobServices BlobCount
Microsoft.Storage/storageAccounts/blobServices BlobProvisionedSize
Microsoft.Storage/storageAccounts/blobServices IndexCapacity
Microsoft.Storage/storageAccounts/fileServices FileCapacity
Microsoft.Storage/storageAccounts/fileServices FileCount
Microsoft.Storage/storageAccounts/fileServices FileShareCount
Microsoft.Storage/storageAccounts/fileServices FileShareSnapshotCount
Microsoft.Storage/storageAccounts/fileServices FileShareSnapshotSize
Microsoft.Storage/storageAccounts/fileServices FileShareCapacityQuota
Microsoft.Storage/storageAccounts/fileServices FileShareProvisionedIOPS

Próximas etapas