20/01/2020 | Autor: Claudio Romão | Categoria: Técnico | Comentários

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.

Gráfico explicando a comunicação do Application Insights e seu aplicativo
Gráfico explicando a comunicação do Application Insights e seu aplicativo

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