Compartilhar via


Azure Monitor

Dica

Esse conteúdo é um trecho do livro eletrônico, para Projetar os Aplicativos .NET nativos de nuvem para o Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Nenhum outro provedor de nuvem tem uma solução de monitoramento de aplicativo de nuvem tão desenvolvida quanto a encontrada no Azure. O Azure Monitor é um nome abrangente de uma coleção de ferramentas projetadas para dar visibilidade ao estado do sistema. Ele ajuda a entender o desempenho dos seus serviços nativos de nuvem e identifica proativamente os problemas que os afetam. A Figura 7-12 apresenta um alto nível de exibição do Azure Monitor.

High-level view of Azure Monitor.Figura 7-12. Exibição de alto nível do Azure Monitor.

Coletando logs e métricas

A primeira etapa em qualquer solução de monitoramento é coletar o máximo possível de dados. Quanto mais dados forem coletados, mais profundos serão os insights. Tradicionalmente, a instrumentação dos sistemas tem sido difícil. O Protocolo SNMP (Simple Network Management Protocol) era o protocolo padrão ouro para coletar informações do computador, mas exigia muito conhecimento e configuração. Felizmente, grande parte desse trabalho árduo foi eliminado, pois as métricas mais comuns são coletadas automaticamente pelo Azure Monitor.

Não é possível instrumentar métricas e eventos do aplicativo automaticamente, pois são específicas do aplicativo que está sendo implantado. Para coletar essas métricas, há SDKs e APIs disponíveis para relatar diretamente essas informações, como quando um cliente cria uma conta ou conclui um pedido. Exceções também podem ser capturadas e relatadas novamente no Azure Monitor por meio do Application Insights. Os SDKs dão suporte à maioria das linguagens encontradas em Aplicativos Nativos de Nuvem, incluindo as linguagens Go, Python, JavaScript e .NET.

O objetivo final da coleta de informações sobre o estado do aplicativo é garantir que os usuários finais tenham uma boa experiência. Que melhor maneira de dizer se os usuários estão enfrentando problemas do que fazer testes web de interação indireta? Esses testes podem ser tão simples quanto o ping no seu site em locais ao redor do mundo ou tão envolvidos quanto ter agentes fazendo logon no site e simulando ações do usuário.

Dados do relatório

Depois que os dados são coletados, eles podem ser manipulados, resumidos e plotados em gráficos, o que permite que os usuários vejam instantaneamente quando há problemas. Esses gráficos podem ser coletados em painéis ou em pastas de trabalho, um relatório de várias páginas projetado para mostrar um histórico de alguns aspectos do sistema.

Nenhum aplicativo moderno seria completo sem inteligência artificial ou aprendizado de máquina. Para isso, os dados podem ser passados para as várias ferramentas de aprendizado de máquina no Azure para permitir que você extraia tendências e informações que, de outra forma, estariam ocultas.

O Application Insights fornece uma linguagem de consulta avançada (semelhante a SQL) chamada Kusto, que pode consultar registros, resumi-los e até plotar gráficos. Por exemplo, a consulta a seguir localizará todos os registros do mês de novembro de 2007, os agrupará por estado e plotará os 10 primeiros como um gráfico de pizza.

StormEvents
| where StartTime >= datetime(2007-11-01) and StartTime < datetime(2007-12-01)
| summarize count() by State
| top 10 by count_
| render piechart

A Figura 7-13 mostra os resultados dessa consulta do Application Insights.

Application Insights query resultsFigura 7-13. Resultados da consulta do Application Insights.

Há um playground para experimentar consultas do Kusto. Ler consultas de exemplo também pode ser instrutivo.

Painéis

Há várias tecnologias de painéis que podem ser usadas para exibir as informações do Azure Monitor. Talvez o mais simples seja apenas executar consultas no Application Insights e plotar os dados em um gráfico.

An example of Application Insights charts embedded in the main Azure DashboardFigura 7-14. Um exemplo de gráficos do Application Insights inseridos no painel principal do Azure.

Esses gráficos podem ser inseridos no portal do Azure apropriado por meio do uso do recurso de painel. Para usuários com requisitos mais exigentes, como poder fazer drill down em várias camadas de dados, os dados do Azure Monitor estão disponíveis para o Power BI. O Power BI é uma ferramenta de business intelligence líder do setor e de classe empresarial que pode agregar dados de várias fontes de dados diferentes.

An example Power BI dashboard

Figura 7-15. Um exemplo de painel do Power BI.

Alertas

Às vezes, ter painéis de dados é insuficiente. Se ninguém estiver acordado observando os painéis, ainda poderá levar muitas horas para que um problema seja resolvido ou até detectado. Para isso, o Azure Monitor também fornece uma solução de alerta de primeira linha. Os alertas podem ser disparados por uma ampla gama de condições, incluindo:

  • Valores métricos
  • Consultas da pesquisa de logs
  • Eventos do Log de Atividades
  • Integridade da plataforma subjacente do Azure
  • Testes de disponibilidade do site

Quando disparados, os alertas podem executar uma grande variedade de tarefas. Os alertas mais simples podem apenas enviar uma notificação para uma lista de emails ou uma mensagem de texto para alguém. Os alertas mais envolvidos podem disparar um fluxo de trabalho em uma ferramenta, como o PagerDuty, que está ciente de quem está disponível para um aplicativo específico. Os alertas podem disparar ações no Microsoft Flow, desbloqueando possibilidades quase ilimitadas para fluxos de trabalho.

À medida que as causas comuns dos alertas são identificadas, os alertas podem ser aprimorados com detalhes sobre essas causas e as etapas para resolvê-los. Implantações de aplicativos nativos de nuvem altamente desenvolvidas podem optar por iniciar tarefas de autorrecuperação, que executam ações, como remover nós com falha de um conjunto de dimensionamento ou disparar uma atividade de dimensionamento automático. Eventualmente, pode não ser mais necessário acordar o pessoal de plantão às 2 horas da manhã para resolver um problema, pois o sistema será capaz de se ajustar para compensar ou pelo menos persistir até que alguém chegue ao trabalho na manhã seguinte.

O Azure Monitor aproveita automaticamente o aprendizado de máquina para entender os parâmetros operacionais normais dos aplicativos implantados. Essa abordagem permite detectar serviços que estão operando fora de seus parâmetros normais. Por exemplo, o tráfego típico nos dias de semana no site pode ser de 10.000 solicitações por minuto. E, em uma determinada semana, de repente as solicitações atingem o número incomum de 20.000 por minuto. A detecção inteligente notará esse desvio da norma e disparará um alerta. Ao mesmo tempo, a análise de tendência é inteligente o suficiente para evitar disparar falsos positivos quando a carga de tráfego é esperada.

Referências