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.
Se a depuração ou a observabilidade não for suficiente, o .NET oferecerá suporte a mecanismos de diagnóstico adicionais.
Rastreamento com origem do evento
Origem do evento fornece a capacidade de coletar informações detalhadas de diagnóstico sobre o que está acontecendo dentro de processos do .NET. Ele inclui informações de telemetria para o runtime, GC, bibliotecas e código do aplicativo.
Os dados de Origem do Evento podem ser coletados em 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 das ferramentas externas para coletar dados de origem de eventos em rastreamentos geralmente é usado para análise de desempenho.
EventPipe
EventPipe é um componente de runtime que pode ser usado para coletar dados de rastreamento, semelhante a ETW ou LTTng. O objetivo do EventPipe é permitir que os desenvolvedores do .NET rastreiem facilmente seus aplicativos .NET sem precisar contar com componentes nativos do sistema operacional específicos da plataforma, como ETW ou LTTng.
EventPipe é o mecanismo por trás de muitas das ferramentas de diagnóstico. Ele pode ser usado para consumir eventos emitidos pelo runtime, bem como eventos personalizados gravados com EventSource.
Despejos
Um despejo é um arquivo que contém um instantâneo do processo no momento da criação. Eles podem ser úteis para examinar o estado do aplicativo 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. Eles são comumente usados por depuradores .NET para resolver 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 runtime do .NET Core expõe um ponto de extremidade de serviço que permite que outros processos enviem comandos de diagnóstico e recebam respostas em um canal de IPC. Esse ponto de extremidade é chamado de porta de diagnóstico. Os comandos podem ser enviados à porta de diagnóstico para:
- Capturar um despejo de memória.
- Iniciar um rastreamento de EventPipe.
- Solicitar a linha de comando usada para iniciar o aplicativo.
DiagnosticSource e DiagnosticListener
DiagnosticSource é um módulo que permite que o código seja instrumentado para registro em tempo de produção de cargas de dados avançados para consumo dentro do processo que foi instrumentado. Em runtime, os consumidores podem descobrir dinamicamente fontes de dados e assinar as que são de interesse. System.Diagnostics.DiagnosticSource foi projetado para permitir que as ferramentas em processo acessem dados avançados, como bibliotecas de instrumentação do OpenTelemetry. Os dados do DiagnosticSource também podem ser enviados por meio do 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 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.