Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Quando habilitado, o Depurador de Instantâneos coleta automaticamente um instantâneo de depuração do código-fonte e das variáveis quando ocorre uma exceção em seu aplicativo .NET dinâmico. O Depurador de Capturas no Application Insights:
- Monitora os logs gerados pelo sistema do seu aplicativo web.
- Coleta instantâneos das exceções mais geradas.
- Fornece as informações necessárias para diagnosticar problemas na produção.
Aplicativos e ambientes compatíveis
Aplicativos
Coleta de instantâneo está disponível para:
- .NET Framework 4.6.2 e versões mais recentes.
- .NET 6.0 ou posterior no Windows.
Ambientes
O Snapshot Debugger oferece suporte aos seguintes ambientes:
- Serviço de Aplicativo do Azure
- Azure Functions
- Serviços de Nuvem do Azure executando a família de sistemas operacionais 4 ou posterior
- Azure Service Fabric em execução no Windows Server 2012 R2 ou posterior
- Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure executando Windows Server 2012 R2 ou posterior
- Máquinas virtuais ou físicas locais executando Windows Server 2012 R2 ou posterior ou Windows 8.1 ou posterior
Observação
Não há suporte para aplicativos cliente, como WPF, Windows Forms ou UWP.
Pré-requisitos para o Depurador de Instantâneos
Pacotes e configurações
- Incluir o pacote NuGet Snapshot Collector em seu aplicativo.
- Configurar os parâmetros de coleta em
ApplicationInsights.config.
Permissões
- Verifique se você tem a função de Depurador de Instantâneos do Application Insights para o Instantâneo do Application Insights de destino.
Como funciona o Depurador de Instantâneos
O Depurador de Instantâneo funciona como um processador de telemetria do Application Insights. Quando seu aplicativo é executado, o processador de telemetria do Snapshot Debugger passa a integrar o pipeline de logs gerados pelo sistema do seu aplicativo.
Importante
Os instantâneos podem conter dados pessoais ou outras informações confidenciais em valores de variável e parâmetro. O Application Insights armazena dados de instantâneo na mesma região que seu recurso.
Processo do Depurador de Instantâneos
O processo do Depurador de Instantâneos começa e termina com o método TrackException. Um instantâneo do processo é um clone suspenso do processo em execução. Seus usuários experimentam pouca ou nenhuma interrupção. Em um cenário típico:
Seu aplicativo gera uma exceção e o relata ao Application Insights chamando o
TrackExceptionmétodo.O Depurador de Instantâneos monitora as exceções conforme elas são geradas assinando o evento
AppDomain.CurrentDomain.FirstChanceException.O Depurador de instantâneos incrementa o contador do ID do problema.
Quando o contador atinge o valor
ThresholdForSnapshotting, o Snapshot Debugger adiciona o ID do problema a um plano de coleta.Observação
O valor mínimo padrão de
ThresholdForSnapshottingé 1. Com esse valor, seu aplicativo precisa disparar a mesma exceção duas vezes antes que o Depurador de Instantâneo crie um instantâneo.O Depurador de Instantâneos calcula o identificador do problema do evento de exceção e o compara aos identificadores de problema no plano de coleta.
Se houver uma correspondência entre IDs de problema, o Depurador de Instantâneos criará um instantâneo do processo em execução.
O depurador de instantâneos atribui ao instantâneo um identificador exclusivo e marca a exceção com esse identificador.
Observação
A configuração
SnapshotsPerTenMinutesLimitlimita a taxa de criação de snapshots. Por padrão, o limite é um instantâneo a cada 10 minutos.Depois que o manipulador
FirstChanceExceptionretorna, seu aplicativo processa a exceção lançada normalmente.A exceção chega ao método
TrackExceptionnovamente, que a informa ao Application Insights, juntamente com o identificador do instantâneo.
Observação
Defina IsEnabledInDeveloperMode como true para gerar instantâneos durante a depuração no Visual Studio.
Processo do Carregador de Instantâneos
Embora o processo do Depurador de Instantâneos continue em execução e atendendo às solicitações dos usuários com pouca interrupção, ele transfere o instantâneo para o processo do Carregador de Instantâneos. Em um cenário típico, o Carregador de Instantâneos:
Cria um minidespejo.
Envia o minidump para o Application Insights, juntamente com quaisquer arquivos de símbolos relevantes (.pdb).
Observação
O Carregador de Instantâneos pode carregar no máximo 50 instantâneos por dia.
Se você habilitou o Depurador de Instantâneos, mas não está vendo os instantâneos, confira o Guia de solução de problemas.
Atualizar o Depurador de Instantâneos
As atualizações automáticas do Depurador de Instantâneos são feitas por meio da extensão de site integrada e pré-instalada do Application Insights.
A adição manual de uma extensão de site do Application Insights para manter o Snapshot Debugger atualizado foi descontinuada.
Sobrecarga do Depurador de Instantâneos
O Depurador de Instantâneos foi projetado para uso em ambientes de produção. As configurações padrão incluem limites de taxa para minimizar o impacto sobre os seus aplicativos.
No entanto, você pode experimentar uma pequena sobrecarga de CPU, memória e E/S associada ao Snapshot Debugger, como:
- Quando seu aplicativo lança uma exceção
- Se o manipulador de exceção decidir criar um instantâneo
- Quando
TrackExceptioné chamado
Não há nenhum custo adicional para armazenar os dados que o Depurador de Instantâneo captura.
Veja cenários de exemplo nos quais você pode enfrentar sobrecarga do Snapshot Debugger.
Otimizações de código
Se o Depurador de Instantâneos capturar instantâneos do seu aplicativo, você poderá ver informações relacionadas sobre exceções na visão geral consolidada de Otimizações de Código.
Limitações do Depurador de Instantâneos
O Depurador de Instantâneos tem as seguintes limitações:
Retenção de dados
Instantâneos de depuração são armazenados por 15 dias. Essa política de retenção de dados padrão é definida para cada aplicativo. Para aumentar esse valor, abra um caso de suporte no portal do Azure. Cada instância do Application Insights permite um máximo de 50 instantâneos por dia.
Publicar símbolos
O Depurador de Instantâneos requer arquivos de símbolo no servidor de produção para:
- Decodificar variáveis
- Fornecer uma experiência de depuração no Visual Studio
Por padrão, o Visual Studio 2017 versão 15.2 ou posterior publica símbolos para builds de lançamento ao realizar a publicação para o Serviço de Aplicativo.
Nas versões anteriores, você deve adicionar a seguinte linha ao arquivo
.pubxmlde seu perfil de publicação para que os símbolos sejam publicados no modo de versão:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>Para Azure Compute e outros tipos, verifique se os arquivos de símbolo são:
- Na mesma pasta do aplicativo principal
.dll(normalmente,wwwroot/bin) ou - Disponíveis no caminho atual.
Para obter mais informações sobre as opções de símbolo disponíveis, consulte a documentação do Visual Studio. Para obter melhores resultados, use Full, Portable ou Embedded.
Compilações otimizadas
Em alguns casos, você não pode exibir variáveis locais em builds de versão porque o compilador JIT aplica otimizações.
No entanto, no Serviço de Aplicativo, o Depurador de Instantâneos pode cancelar a otimização dos métodos de lançamento que fazem parte de seu plano de coleta.
Dica
Instale a extensão do Site do Application Insights em sua instância de App Service para obter suporte de desotimização.
Conteúdo relacionado
Habilite o Depurador de Instantâneos do Application Insights em seu aplicativo: