O que é o Application Insights ?
O Application insights é um serviço fornecido pela Microsoft que ajuda a melhorar o desempenho e a usabilidade do seu aplicativo em tempo real. Ele é um dos recursos do Azure Monitor. O Application Insights é uma ferramenta de APM (Application Performance Management - Gerenciamento de Performance de Aplicativo).
O Application Insights cria gráficos e tabelas que mostram por exemplo, em que horas do dia você tem mais usuários, o nível de capacidade de resposta do aplicativo e quão bem ele é atendido por quaisquer serviços externos dos quais ele depende.
Se houver travamentos, falhas ou problemas de desempenho, você pode pesquisar os dados de telemetria em detalhes para diagnosticar a causa. Ele monitora seus aplicativos em todo o tempo de execução, tanto durante o teste quanto depois de publicado. Com isso, ele consegue detectar automaticamente anomalias de desempenho e nos fornecesse ferramentas avançadas de análise para ajudar a entender o que os usuário estão realmente fazendo dentro da nossa aplicação.
Ele funciona com aplicativos em uma ampla variedade de plataformas, incluindo .NET, Node.js e Java EE, hospedadas localmente, de maneira híbrida ou em qualquer nuvem pública e aplicativos móveis.
Como Funciona ?
Para poder já ter alguns dos benefícios do serviço basta você instalar um pacote de instrumentação pequeno em sua aplicação e configurar um recurso Application Insights no portal do Microsoft Azure.
A instrumentação monitora seu aplicativo e envia os dados de telemetria ao Azure Monitor. (O aplicativo pode ser executado em qualquer lugar — ele não precisa ser hospedado no Azure.)
Você pode instrumentar não apenas o aplicativo de serviço web, mas também todos os componentes em segundo plano e o JavaScript nas próprias páginas da web.
Qual é a sobrecarga?
O impacto sobre o desempenho do aplicativo é muito pequeno. As chamadas de acompanhamento não são bloqueadas, além de serem colocadas em lote e enviadas em uma thread separado.
Dados Coletados pelo Application Insights
O pacote que instalamos na nossa aplicação, o SDK do Application Insights, já envia informações de requisições do seu aplicativo. Com o SDK você também pode usar a API para mandar suas informações para o Azure e com isso começar a controlar outras métricas, como por exemplo métricas de negócio.
O que é Coletado ?
Telemetria do servidor Web - solicitações HTTP. URI, tempo necessário para processar a solicitação, código de resposta, endereço IP do cliente. ID da sessão
Páginas da Web - contagens de página, usuário e sessão. Tempos de carregamento de página. Exceções. Chamadas Ajax.
Contadores de desempenho - memória, CPU, E/S, ocupação de rede.
Contexto de cliente e servidor - sistema operacional, localidade, tipo de dispositivo, navegador, resolução da tela.
Exceções e falhas - despejos de pilha, id da compilação, tipo de CPU.
Dependências - chamadas a serviços externos, como REST, SQL, AJAX. Cadeia de conexão ou URI, duração, sucesso, comando.
Testes de disponibilidade - duração do teste e etapas, respostas.
Logs de rastreamento e telemetria personalizada - qualquer elemento que você codifique nos seus logs ou telemetria.
No próximo post veremos como adicionar o Application Insihgts na nossa aplicação e criar uma área no portal do Azure para vermos os dados coletados.
Espero que tenha gostado e se tiver alguma dúvida específica me manda um e-mail ou deixe nos comentários.
Até a próxima, Claudio Romão
20/01/2020 | Por Claudio Romão | Em Técnico | Tempo de leitura: 3 mins.