Criar um alerta de métrica com limites dinâmicos
Talvez você não tenha certeza dos números corretos a serem usados como os limites para suas regras de alerta. 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.
- Analise métricas ao longo do tempo e identifique padrões, como, por exemplo, padrões por hora, por dia ou por semana.
- Reconhecer anomalias que indicam possíveis problemas de serviço.
- Calcule os limites mais apropriados para as métricas.
Ao usar limites dinâmicos, você não precisa saber o limite ideal para cada métrica. O recurso de limites dinâmicos calcula os limites mais adequados 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 tiver menos regras de alerta, você gastará menos tempo para criá-las e gerenciá-las. Alertas escalonáveis são especialmente úteis para várias dimensões ou vários recursos, como, por exemplo, todos os recursos em uma assinatura.
- Crie regras sem precisar saber qual limite configurar.
- Configure alertas de métricas usando conceitos de alto nível sem precisar de um amplo conhecimento do domínio a que a métrica se refere.
- Evite limites com muito ruído (baixa precisão) ou muita amplitude (baixo nível de detecção) que não têm um padrão esperado.
Você pode usar limites dinâmicos:
- A maioria das métricas personalizadas e da plataforma Azure Monitor.
- Métricas comuns de aplicativos e infraestrutura.
- Métricas com ruído, como as da CPU ou da memória do computador.
- Métricas com baixo nível de dispersão, como disponibilidade e taxa de erros.
Você pode configurar limites dinâmicos usando:
- O Portal do Azure.
- A API do Resource Manager do Azure totalmente automatizada.
- Modelos de alerta de métricas.
Cálculo e visualização do limite de alerta
Quando uma regra de alerta é criada, os limites dinâmicos usam 10 dias de dados históricos para calcular padrões sazonais, por hora ou por dia. O gráfico que você vê na visualização de alerta reflete esses dados.
Os limites dinâmicos usam todos os dados históricos disponíveis continuamente para aprender e fazem ajustes para se tornarem mais precisos. Após três semanas, os limites dinâmicos terão dados suficientes para identificar padrões semanais e o modelo é ajustado para incluir a sazonalidade semanal.
O sistema reconhece automaticamente interrupções prolongadas e as remove do algoritmo de aprendizado de limite. Se houver uma indisponibilidade prolongada, os limites dinâmicos entenderão os dados. São capazes de detectar problemas do sistema com o mesmo nível de sensibilidade que tinham antes de a indisponibilidade ocorrer.
Considerações sobre o uso de limites dinâmicos
- Para ajudar a garantir um cálculo de limites preciso, as regras de alertas que usam limites dinâmicos não disparam um alerta antes de coletar amostras por três dias e pelo menos 30 amostras de dados da métrica. Recursos novos ou recursos com dados de métricas ausentes não disparam um alerta até que uma quantidade suficiente de dados esteja disponível.
- Os limites dinâmicos precisam de pelo menos três semanas de dados históricos para detectar sazonalidade semanal. Alguns padrões detalhados, como a cada duas horas ou a cada meia semana, podem não ser detectados.
- Se o comportamento de uma métrica tiver mudado recentemente, as alterações não são refletidas imediatamente nos limites superiores e inferiores do limite dinâmico. As bordas são calculadas com base nos dados de métrica dos últimos 10 dias. Ao conferir os limiares do limite dinâmico para uma determinada métrica, observe a tendência da métrica na semana anterior, não apenas nas últimas horas ou dias.
- Limites dinâmicos são bons para detectar desvios significativos, não problemas que se desenvolvem lentamente. Mudanças de comportamento mais lentas provavelmente não irão disparar um alerta.
- Não é possível usar limites dinâmicos em regras de alerta que monitoram várias condições.
Como configurar limites dinâmicos
Para configurar limites dinâmicos, siga o procedimento para criar uma regra de alerta. Use as seguintes configurações na guia Condição:
- Para Limite, selecione Dinâmico.
- Para Tipo de agregação, recomendamos que você não selecione o Máximo.
- Para Operador, selecione Maior que, a menos que o comportamento represente o uso do aplicativo.
- Para Sensibilidade do limite, selecione Médio ou Baixo, para reduzir o ruído do alerta.
- Para Verificar a cada, selecione com que frequência a regra de alerta deve verificar se a condição foi atendida. Para minimizar o impacto do alerta sobre os negócios, pense em usar uma frequência mais baixa. Certifique-se de que esse valor seja menor ou igual ao valor do Período retrospectivo.
- Para Período retrospectivo, defina o período de tempo a ser examinado retrospectivamente a cada vez que os dados forem verificados. Certifique-se de que esse valor seja maior ou igual ao valor de Verificar a cada.
- Para Opções avançadas, escolha quantas violações irão disparar o alerta dentro de um período de tempo específico. Opcionalmente, defina a data a partir da qual iniciar o aprendizado dos dados históricos de métrica e calcular os limites dinâmicos.
Observação
As regras de alerta de métricas que você cria por meio do portal são criadas no mesmo grupo de recursos que o recurso de destino.
Gráfico de limite dinâmico
O gráfico abaixo mostra uma métrica, os respectivos limites dinâmicos e alguns alertas acionados quando o valor estava fora dos limites permitidos.
Use as seguintes informações para interpretar o gráfico:
- Linha azul: a métrica medida ao longo do tempo.
- Área sombreada azul: o intervalo permitido para a métrica. Se os valores de métrica permanecerem dentro desse intervalo, nenhum alerta é disparado.
- Pontos azuis: valores de métrica agregados. Se selecionar uma parte do gráfico e passar o mouse sobre a linha azul, você verá um ponto azul aparecer embaixo do seu cursor para indicar um valor individual de métrica agregada.
- Caixa pop-up com um ponto azul: 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: o primeiro valor da métrica fora do intervalo permitido. Esse valor dispara um alerta de métrica e o coloca em um estado ativo.
- Pontos vermelhos: outros valores medidos fora do intervalo permitido. Eles não vão disparar alertas de métrica adicionais, mas o alerta permanecerá no estado ativo.
- Área vermelha: a hora em que o valor da métrica estava fora do intervalo permitido. O alerta permanece no estado ativo enquanto os valores medidos subsequentes estiverem fora do intervalo permitido sem que nenhum alerta novo seja acionado.
- Fim da área vermelha: um retorno aos valores permitidos. Quando a linha azul estiver novamente dentro dos valores permitidos, a área vermelha irá parar e a linha do valor medido se tornará azul. O status do alerta da métrica acionado na hora do ponto vermelho com contorno preto será definido como resolvido.
Problemas conhecidos com confidencialidade de limite dinâmico
Se uma regra de alerta que usa limites dinâmicos tiver muito ruído ou disparar com frequência excessiva, talvez seja necessário reduzir sua sensibilidade. Use uma das seguintes opções:
- Sensibilidade do limite: defina a sensibilidade como Baixa para torná-lo mais tolerante 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 dentro de um determinado período de tempo. Essa configuração torna a regra menos suscetível a desvios temporários.
Você poderá perceber que uma regra de alerta que usa limites dinâmicos não é disparada ou não é sensível o suficiente, mesmo que esteja configurada com alta sensibilidade. Esse cenário poderá ocorrer quando a distribuição da métrica for altamente irregular. Tente uma das seguintes soluções:
- 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 ocorreu alguma alteração drástica no comportamento da métrica nos últimos 10 dias, como uma indisponibilidade. 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 indisponibilidade deixe de ser incluída no cálculo do limite. Você também pode editar a regra de alerta para usar a opção Ignorar dados antes de em 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. Nesse caso, a sazonalidade correta será detectada e os limites calculados serão atualizados de acordo.
Quando um valor de métrica apresentar grandes flutuações, os limites dinâmicos poderão compilar um modelo amplo em torno dos valores da métrica, o que poderá resultar em um limiar mais baixo ou mais alto 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.
Pense em tornar o modelo menos sensível ao escolher uma sensibilidade maior ou selecionar um valor mais longo para oPeríodo retrospectivo. Você também pode usar a opção Ignorar dados antes de para excluir uma irregularidade recente dos dados históricos que estão sendo usados para criar o modelo.
Métricas sem suporte de limites dinâmicos
Os limites dinâmicos são compatíveis com a maioria das métricas, mas as métricas a seguir não podem usar 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 |
Conteúdo relacionado
Se tiver algum feedback sobre limites dinâmicos, nos envie um email.