Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se a depuração ou a observabilidade não forem suficientes, o .NET oferece suporte a mecanismos de diagnóstico adicionais.
Rastreamento com a origem do evento
A Fonte de Eventos fornece a capacidade de coletar informações de diagnóstico detalhadas sobre o que está acontecendo dentro dos processos .NET. Ele inclui informações de telemetria para o tempo de execução, GC, bibliotecas e código do aplicativo.
Os dados da fonte do evento podem ser coletados durante o processo usando a System.Diagnostics.Tracing.EventListener API ou com ferramentas de diagnóstico externas, como Visual Studio, dotnet-monitor, dotnet-trace, PerfView e os scripts Perfcollect . O uso de ferramentas externas para coletar dados de origem de eventos em rastreamentos é comumente usado para análise de desempenho.
EventPipe
EventPipe é um componente de tempo de execução que pode ser usado para coletar dados de rastreamento, semelhante ao ETW ou LTTng. O objetivo do EventPipe é permitir que os desenvolvedores .NET rastreiem facilmente seus aplicativos .NET sem ter que depender de componentes nativos do sistema operacional específicos da plataforma, como ETW ou LTTng.
O EventPipe é o mecanismo por trás de muitas das ferramentas de diagnóstico. Ele pode ser usado para consumir eventos emitidos pelo tempo de execução, bem como eventos personalizados escritos com EventSource.
Lixeiras
Um dump é um arquivo que contém um instantâneo do processo no momento da criação do dump. Os dumps podem ser úteis para examinar o estado da sua aplicação para fins de depuração.
Símbolos
Símbolos são um mapeamento entre o código-fonte e o binário produzido pelo compilador. Esses elementos são comumente usados por depuradores .NET e ferramentas de rastreamento de código para determinar números de linha de origem, nomes de variáveis locais e outros tipos de informações de diagnóstico.
Porta de diagnóstico
O tempo de execução do .NET expõe um ponto de extremidade de serviço que permite que outros processos enviem comandos de diagnóstico e recebam respostas por um canal IPC. Este ponto de extremidade é chamado de porta de diagnóstico. Os comandos podem ser enviados para a porta de diagnóstico para:
- Capture um despejo de memória.
- Inicie um rastreamento do EventPipe.
- Solicite a linha de comando usada para iniciar o aplicativo.
FonteDiagnóstico & OuvinteDiagnóstico
DiagnosticSource é um módulo que permite que o código seja instrumentado para registro em tempo de produção de cargas úteis de dados avançados para consumo dentro do processo que foi instrumentado. Em tempo de execução, os consumidores podem descobrir dinamicamente fontes de dados e subscrever as que lhes interessam. System.Diagnostics.DiagnosticSource foi concebido para permitir que ferramentas em execução acedam a dados abrangentes, como por meio das bibliotecas de instrumentação do OpenTelemetry. Os dados do DiagnosticSource também podem ser enviados via EventPipe, o que permite que dados de diagnóstico avançados sejam coletados por ferramentas dedicadas.
Coletar diagnósticos em contêineres
As mesmas ferramentas de diagnóstico que são usadas em ambientes Linux não conteinerizados também podem ser usadas para coletar diagnósticos em contêineres. Há apenas algumas alterações de uso necessárias para garantir que as ferramentas funcionem em um contêiner do Docker.