Explore Application Insights

Concluído

O Application Insights é a solução de Monitoramento de Desempenho de Aplicativos (APM) do Azure que fornece informações detalhadas sobre o desempenho de seus aplicativos e como os usuários interagem com eles. Ao contrário do monitoramento de infraestrutura (abordado em unidades anteriores), o Application Insights se concentra na telemetria no nível do aplicativo — solicitações, dependências, exceções e eventos de negócios personalizados.

Como funciona o Application Insights

Instalação e configuração

Você instala um pequeno pacote de instrumentação em seu aplicativo e configura um recurso do Application Insights no portal do Microsoft Azure. O processo de configuração varia de acordo com a plataforma, mas geralmente envolve:

1. Criar recurso do Application Insights:

  • Navegue até o portal do Azure e crie um recurso do Application Insights
  • Obter a chave de instrumentação ou a cadeia de conexão
  • O recurso pode ser autônomo ou vinculado a um espaço de trabalho do Log Analytics

2. Adicione instrumentação à sua aplicação:

  • Instale o SDK do Application Insights para sua plataforma (.NET, Java, Node.js, Python)
  • Configurar a chave de instrumentação em seu aplicativo
  • Opcionalmente, habilite recursos avançados (criação de perfil, depuração de instantâneos)

3. Implante um aplicativo instrumentado:

  • A instrumentação monitora seu aplicativo e envia dados de telemetria para o portal
  • O aplicativo pode ser executado em qualquer lugar — ele não precisa ser hospedado no Azure
  • Funciona com aplicações em instalações locais, outros provedores de nuvem, dispositivos periféricos

O que é instrumentado?

Você pode instrumentar vários componentes do aplicativo para visibilidade completa:

Aplicativo de serviço Web:

  • Aplicações ASP.NET, ASP.NET Core, Java Spring Boot Node.js Express
  • Captura automaticamente solicitações, tempos de resposta, exceções
  • Rastreia dependências (chamadas de banco de dados, APIs externas, filas de mensagens)

Componentes de fundo:

  • Azure Functions, WebJobs, Serviços do Trabalhador
  • Aplicativos de console e processos em lote
  • Tarefas agendadas e trabalhos em segundo plano

JavaScript em páginas web:

  • O SDK do lado do cliente é executado em navegadores de usuários
  • Rastreia visualizações de página, chamadas AJAX, exceções do navegador
  • Mede o desempenho do lado do cliente (tempo de carregamento da página, renderização)
  • Monitoriza aplicações de página única (React, Angular, Vue)

Diagrama mostrando o Application Insights e a telemetria para alertas, Power BI, Visual Studio, API REST e Exportação Contínua.

Recolha de telemetria abrangente

O Application Insights fornece várias fontes de telemetria para total observabilidade:

Integração com o ambiente de host:

  • Obter telemetria de ambientes de host , como contadores de desempenho, diagnóstico do Azure ou logs do Docker
  • Correlacione as métricas de infraestrutura com o desempenho do aplicativo
  • Entender se os problemas são no nível do aplicativo ou da infraestrutura

Monitorização sintética:

  • Configurar testes web periodicamente, enviando solicitações sintéticas para o seu serviço web
  • Monitore a disponibilidade de vários locais globais
  • Validar cenários de usuário em várias etapas
  • Alertar quando os terminais ficarem indisponíveis

Análise unificada:

  • Todos esses fluxos de telemetria são integrados ao portal do Azure
  • Aplique poderosas ferramentas analíticas e de pesquisa aos dados brutos
  • Usar o KQL para consultar todos os tipos de telemetria
  • Correlacione eventos de diferentes fontes usando IDs de operação

Qual é o custo adicional?

O impacto no desempenho do seu aplicativo é mínimo. O Application Insights foi projetado para uso em produção com custo de desempenho insignificante:

Características de desempenho:

  • As chamadas de rastreamento não são bloqueadas: A coleta de telemetria não atrasa o processamento de solicitações
  • Transmissão em lotes: Os eventos são agrupados e enviados em um thread separado
  • Operações assíncronas: Sem esperar pela transmissão da telemetria
  • Amostragem adaptativa: Reduz automaticamente o volume de dados, mantendo a precisão estatística
  • Despesas gerais típicas:<1% de impacto na CPU, ~50-100 KB/s de rede por instância

Estratégias de amostragem:

  • Amostragem de taxa fixa: Coletar uma porcentagem de toda a telemetria (por exemplo, 20%)
  • Amostragem adaptativa: Ajusta-se automaticamente com base no volume de tráfego
  • Amostragem por ingestão: Aplicada no portal do Azure para reduzir a quantidade de dados armazenados
  • A amostragem preserva o contexto: A telemetria relacionada é amostrada em conjunto

Quais aspetos o Application Insights monitoriza?

O Application Insights destina-se à equipe de desenvolvimento para ajudá-lo a entender o desempenho e o uso do seu aplicativo. Ele fornece monitoramento abrangente em várias dimensões:

Métricas de desempenho do aplicativo

Taxas de solicitação, tempos de resposta e taxas de falha:

  • Descubra quais páginas são mais populares, em que horas do dia e onde seus usuários estão localizados
  • Veja quais páginas têm melhor desempenho e quais precisam de otimização
  • Principais informações: Se os tempos de resposta e as taxas de falha aumentarem com mais solicitações, você provavelmente terá um problema de recursos ou capacidade

Taxas de dependência, tempos de resposta e taxas de falha:

  • Rastreie chamadas para bancos de dados, APIs externas, filas de mensagens e armazenamento
  • Descubra se os serviços externos estão a atrasá-lo
  • Identificar as dependências mais lentas que afetam a experiência do usuário
  • Detetar falhas em cascata de serviços downstream

Controlo de erros e exceções

Exceções:

  • Analise estatísticas agregadas mostrando tendências de exceção ao longo do tempo
  • Escolha instâncias específicas e analise detalhadamente o rastreamento de pilha completa
  • Consulte as solicitações relacionadas para entender o contexto quando a exceção ocorreu
  • As exceções do servidor e do navegador são relatadas para visibilidade completa
  • Rastrear exceções não tratadas versus exceções tratadas

Monitoramento do lado do cliente

Pageviews e desempenho de carregamento:

  • Relatado pelos navegadores dos seus utilizadores mostrando a experiência real
  • Medir o Tempo para Interatividade (TTI), Primeira Exibição de Conteúdo (FCP)
  • Identificar páginas de carregamento lento que afetam a experiência do usuário

Chamadas AJAX de páginas da Web:

  • Rastreie taxas, tempos de resposta e taxas de falha para chamadas de API
  • Identificar quais endpoints de API, do ponto de vista do cliente, são lentos.
  • Monitorizar a navegação de aplicações de página única (SPA)

Análise de usuários

Contagem de usuários e sessões:

  • Rastreie usuários ativos diários/mensais (DAU/MAU)
  • Compreender a duração e a frequência das sessões
  • Meça a retenção e a rotatividade de usuários

Integração de infraestrutura

Contadores de desempenho:

  • Recolher de servidores Windows ou Linux
  • Incluir CPU, memória e uso de rede
  • Correlacione as métricas de infraestrutura com o desempenho do aplicativo

Diagnóstico do host:

  • Monitorar contêineres do Docker e recursos do Azure
  • Controlar a utilização de recursos por contêiner
  • Compreender a integridade da infraestrutura juntamente com a integridade do aplicativo

Capacidades de diagnóstico

Logs de rastreamento de diagnóstico:

  • Capture logs da estrutura do seu aplicativo (ILogger, Log4j, etc.)
  • Correlacione eventos de rastreamento com solicitações usando IDs de operação
  • Pesquisar logs para erros ou padrões específicos
  • Filtrar por nível de gravidade, intervalo de tempo ou propriedades personalizadas

Telemetria empresarial personalizada

Eventos e métricas personalizados:

  • Escrever telemetria personalizada no código do cliente ou servidor
  • Acompanhe eventos de negócios, como itens vendidos, jogos ganhos, assinaturas criadas
  • Meça métricas específicas do negócio, como valor do carrinho e etapas do funil de conversão
  • Criar dimensões personalizadas para segmentação (níveis de cliente, sinalizadores de funcionalidades)

Onde posso ver a minha telemetria?

O Application Insights fornece várias interfaces para explorar seus dados, cada uma otimizada para diferentes cenários. Há muitas maneiras de explorar seus dados.

Deteção inteligente e alertas

A deteção inteligente e os alertas manuais fornecem notificação proativa de problemas:

Os alertas automáticos adaptam-se aos padrões habituais de telemetria da sua aplicação e são acionados quando há algo fora do padrão habitual. Os algoritmos de aprendizagem automática identificam:

  • Aumento anormal das taxas de insucesso: Aumento repentino de exceções ou solicitações com falha
  • Degradações de desempenho: Tempos de resposta mais lentos do que os padrões típicos
  • Fugas de memória: Aumento gradual da memória ao longo do tempo
  • Anomalias de dependência: Chamadas de serviço externo exibindo comportamento incomum

Você também pode definir alertas manuais em níveis de métricas personalizadas ou padrão com limites configuráveis, níveis de gravidade e grupos de ação.

Captura de ecrã dos alertas definidos mostrando um aumento anormal na taxa de pedidos falhados na aplicação fabrikamprod.

Mapa de Aplicação

Visualize os componentes do seu aplicativo com as principais métricas e alertas. O mapa do aplicativo descobre automaticamente:

  • Topologia de aplicação: Todos os componentes e suas conexões
  • Relações de dependência: Quais serviços chamam quais dependências
  • Indicadores de saúde: Status de integridade codificado por cores por componente
  • Principais métricas: Taxa de solicitação, taxa de falhas, tempo de resposta por componente
  • Alertas ativos: Indicadores visuais mostrando quais componentes têm problemas

Casos de uso: Identifique rapidamente qual componente em um sistema distribuído está falhando, entenda os padrões de chamada, planeje a capacidade por serviço.

Captura de tela do mapa do aplicativo com os componentes do aplicativo, métricas principais e alertas.

Application Insights Profiler

Inspecione os perfis de execução de solicitações de amostra para identificar gargalos de desempenho:

  • Desempenho em nível de código: Veja exatamente quais métodos consomem mais tempo
  • Visualização da árvore de chamadas: Entender o percurso de execução do programa através do seu código
  • Perfil de amostra: Baixa coleta de despesas gerais de ambientes de produção
  • Gráficos de chama: Representação visual do tempo gasto em cada função

Casos de uso: Identifique consultas lentas de banco de dados, algoritmos ineficientes, alocações excessivas de cadeias de caracteres, contenção de bloqueio.

Captura de ecrã do Profiler. Inspecione os perfis de execução de solicitações amostradas.

Análise de Uso

Analise a segmentação e a retenção de usuários para entender como os usuários interagem com seu aplicativo:

  • Fluxos de utilizadores: Visualize caminhos de navegação através do seu aplicativo
  • Funis de conversão: Acompanhe as taxas de conversão através de processos em várias etapas
  • Coortes: Agrupar usuários por comportamento ou atributos para comparação
  • Retenção: Meça quantos usuários retornam ao longo do tempo
  • Análise de impacto: Correlacione o desempenho com o comportamento do usuário

Casos de uso: Otimize funis de conversão, compreenda a adoção de recursos, identifique usuários em risco, meça o ajuste do produto ao mercado.

Captura de tela da análise de uso com segmentação e retenção de usuários.

Pesquise e filtre eventos para investigação detalhada:

  • Tipos de eventos: Solicitações, exceções, chamadas de dependência, rastreamentos de log, exibições de página, eventos personalizados
  • Filtragem: Por intervalo de tempo, código de resultado, nome da operação, propriedades personalizadas
  • Pesquisa de texto completo: Localizar eventos com texto específico
  • Telemetria relacionada: Clique em um evento para ver toda a telemetria relacionada (transação de ponta a ponta)

Casos de uso: Investigue problemas específicos relatados por usuários, encontre erros para clientes específicos, rastreie solicitações em sistemas distribuídos.

Captura de tela dos eventos de pesquisa e filtro, como solicitações, exceções, chamadas de dependência, rastreamentos de log e exibições de página.

Explorador de Métricas

Explore, filtre e segmente dados agregados:

  • Métricas: Taxas de solicitações, falhas, exceções, tempos de resposta, tempos de carregamento de página, métricas personalizadas
  • Divisão: Segmentar por dimensões (função na nuvem, geografia, navegador, dispositivo)
  • Filtragem: Foco em valores específicos
  • Agregação: Mín, máx, média, soma, percentis
  • Granularidade de tempo: intervalos de 1 minuto a 1 mês

Casos de uso: Planejamento de capacidade, acompanhamento de SLA, comparação de desempenho entre regiões, identificação de tendências.

Captura de tela das métricas e dados agregados de segmento, como taxas de solicitações, falhas e exceções, tempos de resposta e tempos de carregamento de página.

Painéis de Controlo

Combine dados de vários recursos e compartilhe com outras pessoas:

  • Multi-recurso: Combine dados de várias instâncias do Application Insights
  • Blocos personalizáveis: Anexar consultas, métricas e visualizações
  • Painéis compartilhados: Publicar em equipes para monitoramento colaborativo
  • Visor contínuo: Excelente para aplicações com vários componentes e salas de equipa

Casos de uso: Painéis executivos, salas de guerra durante incidentes, consciência situacional da equipe, exibições de status.

Captura de tela de painéis originados de vários recursos, ideal para aplicações multi-componentes e exibição contínua na sala da equipa.

Live Metrics Stream

Monitore indicadores de desempenho em tempo real:

  • Atualização de 1 segundo: Veja a atualização de métricas em tempo real
  • Validação de implantação: Ao implantar uma nova compilação, certifique-se de que tudo funcione conforme o esperado
  • Eventos ao vivo: Fluxo de solicitações, dependências, exceções à medida que ocorrem
  • Estado de funcionamento do servidor: Visualização ao vivo da contagem de servidores, CPU, memória
  • Filtragem: Foco em servidores específicos ou tipos de falha

Casos de uso: Validação de implantação, solução de problemas em tempo real, observação de testes de carga, resposta a incidentes.

Captura de tela do Live Metrics Stream com indicadores de desempenho quase em tempo real.

Analytics (Consultas KQL)

Responda a perguntas desafiadoras sobre o desempenho e o uso do seu aplicativo usando esta poderosa linguagem de consulta:

  • KQL (Kusto Query Language): Mesma língua abordada na unidade anterior
  • Análise ad hoc: Explore dados sem visualizações predefinidas
  • Juntas complexas: Correlacione dados em várias tabelas
  • Visualizações avançadas: Crie gráficos personalizados e séries cronológicas
  • Consultas guardadas: Reutilizar padrões de análise comuns

Casos de uso: Análise de causa raiz, planejamento de capacidade, relatórios personalizados, exploração de dados.

Captura de tela do Google Analytics mostrando a resposta a perguntas desafiadoras sobre o desempenho e o uso do aplicativo usando essa poderosa linguagem de consulta.

Integração com Visual Studio

Veja os dados de desempenho no código:

  • CodeLens: Métricas de desempenho exibidas de forma integrada no editor de código
  • Vá para o código de rastreamentos de pilha: Clique em exceção no portal, vá para a linha de código
  • Depuração local: Integração do Application Insights no depurador do Visual Studio
  • Tendências: Tendências históricas de desempenho para métodos específicos

Casos de uso: Otimização de desempenho durante o desenvolvimento, depurando problemas de produção localmente.

Captura de tela do Visual Studio mostrando os dados de desempenho no código.

Snapshot Debugger

Depurar instantâneos amostrados de operações ao vivo:

  • Depuração de produção: Capture instantâneos completos de memória do ambiente de produção
  • Valores dos parâmetros: Ver variáveis e parâmetros locais no momento da exceção
  • Pilha de chamadas: Rastreamento de pilha completo com valores variáveis em cada quadro
  • Sem impacto no desempenho: Snapshots coletados com sobrecarga mínima
  • Controles de privacidade: Configurar quais dados capturar

Casos de uso: Depure problemas de produção difíceis de reproduzir, entenda as exceções em ambientes de clientes.

Captura de ecrã do depurador de capturas instantâneas. Capturas instantâneas amostradas de operações ao vivo, com valores de parâmetros.

Integração com o Power BI

Integre métricas de uso com outras inteligências de negócios:

  • Relatórios personalizados: Crie painéis do Power BI combinando o Application Insights e dados corporativos
  • Atualização agendada: Atualizações automáticas de dados
  • Correlação: Vincular métricas técnicas a resultados de negócios
  • Relatórios executivos: Apresentar dados técnicos em contexto empresarial

Casos de uso: Relatórios em nível de diretoria, correlacionando o desempenho do aplicativo com a receita, relatórios de conformidade com SLA.

Captura de ecrã do Power BI. Integre métricas de uso com outros business intelligence.

API REST

Escreva código para executar consultas sobre suas métricas e dados brutos:

  • Acesso programático: Consultar o Application Insights a partir de seus próprios aplicativos
  • Automação: Crie soluções de monitoramento personalizadas
  • Integração: Conecte-se a ferramentas e fluxos de trabalho de terceiros
  • Processamento personalizado: Exportar dados para análise avançada

Casos de uso: Painéis personalizados, sistemas de monitoramento de SLA, relatórios automatizados, pipelines de ciência de dados.

Screenshot da API REST. Escreva código para executar consultas sobre suas métricas e dados brutos.

Exportação Contínua

Exportação em massa de dados brutos para armazenamento assim que eles chegam:

  • Armazenamento do Azure: Exportar para armazenamento de Blob para retenção de longo prazo
  • Hubs de Eventos: Streaming para sistemas de processamento em tempo real
  • Data Lake: Integração com plataformas de análise de big data
  • Conformidade: Atender aos requisitos de residência e retenção de dados
  • Otimização de custos: Armazene dados em níveis de armazenamento mais baratos

Casos de uso: Arquivamento de longo prazo, alimentação de data warehouses, requisitos de conformidade, análise personalizada em escala.

Captura de tela da exportação em massa. Exportação em massa de dados brutos para armazenamento assim que eles chegam.