Localizar e diagnosticar exceções de runtime com o Application Insights

O Application Insights recolhe telemetria da sua aplicação para ajudar a identificar e diagnosticar exceções de runtime. Este tutorial guia-o ao longo deste processo com a sua aplicação. Saiba como:

  • Modifique o projeto para ativar o controlo de exceções.
  • Identificar exceções para diferentes componentes da sua aplicação.
  • Ver detalhes de uma exceção.
  • Transfira um instantâneo da exceção para o Visual Studio para depuração.
  • Analise os detalhes dos pedidos falhados com a linguagem de consulta.
  • Crie um novo item de trabalho para corrigir o código com falhas.

Pré-requisitos

Para concluir este tutorial:

  • Instale o Visual Studio 2019 com as seguintes cargas de trabalho:
    • Desenvolvimento ASP.NET e Web
    • Desenvolvimento do Azure
  • Transfira e instale o Visual Studio Snapshot Debugger.
  • Ativar o Snapshot Debugger do Visual Studio
  • Implementar uma aplicação .NET no Azure e ativar o SDK do Application Insights
  • Modifique o código no seu ambiente de desenvolvimento ou teste para gerar uma exceção porque o tutorial monitoriza a identificação de uma exceção na sua aplicação.

Iniciar sessão no Azure

Inicie sessão no portal do Azure.

Analisar falhas

O Application Insights recolhe todas as falhas na sua aplicação. Permite-lhe ver a frequência das diferentes operações para o ajudar a concentrar os seus esforços nesses problemas com o maior impacto. Em seguida, pode desagregar os detalhes destas falhas para identificar a causa raiz.

  1. Selecione Application Insights e, em seguida, selecione a sua subscrição.

  2. Para abrir o painel Falhas , selecione Falhas no menu Investigar ou selecione o gráfico Pedidos falhados .

    Captura de ecrã que mostra os pedidos falhados.

  3. O painel Pedidos falhados mostra a contagem de pedidos falhados e o número de utilizadores afetados por cada operação da aplicação. Ao ordenar estas informações por utilizador, pode identificar as falhas que mais afetam os utilizadores. Neste exemplo, GET Employees/Create and GET Customers/Details are likely candidates to investigate because of their large number of failures and affected users. Selecionar uma operação mostra mais informações sobre esta operação no painel direito.

    Captura de ecrã a mostrar o painel Pedidos falhados.

  4. Reduza o intervalo de tempo para ampliar o período em que a taxa de falhas mostra um pico.

    Captura de ecrã que mostra a janela Pedidos falhados.

  5. Veja os exemplos relacionados ao selecionar o botão com o número de resultados filtrados. Os exemplos sugeridos têm telemetria relacionada de todos os componentes, mesmo que a amostragem possa ter sido aplicada em qualquer um deles. Selecione um resultado de pesquisa para ver os detalhes da falha.

    Captura de ecrã que mostra os exemplos de pedidos falhados.

  6. Os detalhes do pedido falhado mostram o gráfico Gantt que mostra que ocorreram duas falhas de dependência nesta transação, o que também contribuiu para mais de 50% da duração total da transação. Esta experiência apresenta toda a telemetria entre componentes de uma aplicação distribuída que estão relacionados com este ID de operação. Pode selecionar qualquer um dos itens para ver os respetivos detalhes no lado direito.

    Captura de ecrã a mostrar os detalhes do pedido Com falhas.

  7. O detalhe das operações também mostra uma exceção de formato, que parece ter causado a falha. Pode ver que se deve a um Código Postal inválido. Pode abrir o instantâneo de depuração para ver informações de depuração ao nível do código no Visual Studio.

    Captura de ecrã que mostra os detalhes da exceção.

Identificar o código com falhas

O Snapshot Debugger recolhe instantâneos das exceções mais frequentes na sua aplicação para o ajudar a diagnosticar a raiz do problema na produção. Pode ver instantâneos de depuração no portal para visualizar a pilha de chamadas e inspecionar as variáveis em cada frame de pilha de chamadas. Posteriormente, pode depurar o código fonte ao transferir o instantâneo e abri-lo no Visual Studio 2019 Enterprise.

  1. Nas propriedades da exceção, selecione Abrir instantâneo de depuração.

  2. O painel Instantâneo de Depuração é aberto com a pilha de chamadas para o pedido. Selecione qualquer método para ver os valores de todas as variáveis locais no momento do pedido. A partir do método superior neste exemplo, pode ver variáveis locais que não têm valor.

    Captura de ecrã que mostra o painel Depurar Instantâneo.

  3. A primeira chamada com valores válidos é ValidZipCode. Pode ver que foi fornecido um Código Postal com letras que não podem ser traduzidas num número inteiro. Este problema parece ser o erro no código que tem de ser corrigido.

    Captura de ecrã que mostra um erro no código que tem de ser corrigido.

  4. Em seguida, pode transferir este instantâneo para o Visual Studio, onde pode localizar o código real que tem de ser corrigido. Para tal, selecione Transferir Instantâneo.

  5. O instantâneo é carregado para o Visual Studio.

  6. Agora, pode executar uma sessão de depuração no Visual Studio Enterprise que identifica rapidamente a linha de código que causou a exceção.

    Captura de ecrã que mostra uma exceção no código.

Utilizar dados de análise

Todos os dados recolhidos pelo Application Insights são armazenados no Azure Log Analytics, que fornece uma linguagem de consulta avançada que pode utilizar para analisar os dados de várias formas. Pode utilizar estes dados para analisar os pedidos que geraram a exceção que está a pesquisar.

  1. Selecione as informações do CodeLens acima do código para ver a telemetria fornecida pelo Application Insights.

    Captura de ecrã que mostra o código no CodeLens.

  2. Selecione Analisar impacto para abrir o Application Insights Analytics. É preenchido com várias consultas que fornecem detalhes sobre pedidos falhados, como utilizadores afetados, browsers e regiões.

    Captura de ecrã que mostra a janela do Application Insights que inclui várias consultas.

Adicionar um item de trabalho

Se ligar o Application Insights a um sistema de controlo, como o Azure DevOps ou o GitHub, pode criar um item de trabalho diretamente a partir do Application Insights.

  1. Regresse ao painel Propriedades da Exceção no Application Insights.

  2. Selecione Novo Item de Trabalho.

  3. O painel Novo Item de Trabalho é aberto com detalhes sobre a exceção já preenchida. Pode adicionar mais informações antes de as guardar.

    Captura de ecrã a mostrar o painel Novo Item de Trabalho.

Passos seguintes

Agora que aprendeu a identificar exceções de runtime, avance para o próximo tutorial para saber como identificar e diagnosticar problemas de desempenho.