Provedores de eventos conhecidos no .NET

O runtime e as bibliotecas do .NET gravam eventos de diagnóstico por meio de vários provedores de eventos diferentes. A depender das suas necessidades de diagnóstico, você pode escolher os provedores apropriados para habilitar. Este artigo descreve alguns dos provedores de eventos mais usados no runtime e bibliotecas do .NET.

CoreCLR

Provedor "Microsoft-Windows-DotNETRuntime"

Esse provedor emite vários eventos do runtime do .NET, incluindo GC, carregador, JIT, exceção e outros eventos. Leia mais sobre cada evento desse provedor na Lista de Eventos dos Provedores de Runtime.

Provedor "Microsoft-DotNETCore-SampleProfiler"

Esse provedor é um provedor de eventos de runtime do .NET usado para amostragem de CPU para pilhas de chamadas gerenciadas. Quando habilitado, ele captura um instantâneo das pilhas de chamadas gerenciadas de cada thread a cada milissegundo. Para habilitar essa captura, você deve especificar uma EventLevel de Informational ou superior.

Bibliotecas do Framework

Provedor "Microsoft-Extensions-DependencyInjection"

Esse provedor registra informações de DependencyInjection. A tabela a seguir mostra os eventos registrados pelo provedor Microsoft-Extensions-DependencyInjection:

Nome do evento Palavra-chave Nível Descrição
CallSiteBuilt Detalhado (5) Um site de chamada foi criado.
ServiceResolved Detalhado (5) Um serviço foi resolvido.
ExpressionTreeGenerated Detalhado (5) Uma árvore de expressão foi gerada.
DynamicMethodBuilt Detalhado (5) Um DynamicMethod foi criado.
ScopeDisposed Detalhado (5) O escopo foi descartado.
ServiceRealizationFailed Detalhado (5) Falha na realização de um serviço.
ServiceProviderBuilt ServiceProviderInitialized(0x1) Detalhado (5) Um ServiceProvider foi criado.
ServiceProviderDescriptors ServiceProviderInitialized(0x1) Detalhado (5) Uma lista de ServiceDescriptor usada durante a compilação ServiceProvider.

Provedor "System.Buffers.ArrayPoolEventSource"

Esse provedor registra informações do ArrayPool. A tabela a seguir mostra os eventos registrados por ArrayPoolEventSource:

Nome do evento Nível Descrição
BufferRented Detalhado (5) Um buffer é alugado com êxito.
BufferAllocated Informativo (4) Um buffer é alocado pelo pool.
BufferReturned Detalhado (5) Um buffer retorna ao pool.
BufferTrimmed Informativo (4) É feita a tentativa de se liberar buffer devido à pressão de memória ou a inatividade.
BufferTrimPoll Informativo (4) Uma verificação está sendo feita para cortar buffers.
BufferDropped Informativo (4) Um buffer é removido ao retornar ao pool.

Provedor "System.Net.Http"

Esse provedor registra informações da pilha HTTP. A tabela a seguir mostra os eventos registrados pelo provedor System.Net.Http:

Nome do evento Nível Descrição
RequestStart Informativo (4) Uma solicitação HTTP foi iniciada.
RequestStop Informativo (4) Uma solicitação HTTP foi concluída.
RequestFailed Erro (2) Uma solicitação HTTP falhou.
ConnectionEstablished Informativo (4) Uma conexão HTTP foi estabelecida.
ConnectionClosed Informativo (4) Uma conexão HTTP foi fechada.
RequestLeftQueue Informativo (4) Uma solicitação HTTP deixou a fila de solicitações.
RequestHeadersStart Informativo (4) Uma solicitação HTTP para cabeçalho foi iniciada.
RequestHeaderStop Informativo (4) Uma solicitação HTTP para cabeçalho foi concluída.
RequestContentStart Informativo (4) Uma solicitação HTTP para conteúdo foi iniciada.
RequestContentStop Informativo (4) Uma solicitação HTTP para conteúdo foi concluída.
ResponseHeadersStart Informativo (4) Uma resposta HTTP para cabeçalho foi iniciada.
ResponseHeaderStop Informativo (4) Uma resposta HTTP para cabeçalho foi concluída.
ResponseContentStart Informativo (4) Uma resposta HTTP para conteúdo foi iniciada.
ResponseContentStop Informativo (4) Uma resposta HTTP para conteúdo foi concluída.

Provedor "System.Net.NameResolution"

Esse provedor registra informações relacionadas à resolução de nomes de domínio. A tabela a seguir mostra os eventos registrados por System.Net.NameResolution:

Nome do evento Nível Descrição
ResolutionStart Informativo (4) Uma resolução de nome de domínio foi iniciada.
ResolutionStop Informativo (4) Uma resolução de nome de domínio foi concluída.
ResolutionFailed Informativo (4) Uma resolução de nome de domínio falhou.

Provedor "System.Net.Sockets"

Esse provedor registra informações de Socket. A tabela a seguir mostra os eventos registrados pelo provedor System.Net.Sockets:

Nome do evento Nível Descrição
ConnectStart Informativo (4) Uma tentativa de iniciar uma conexão de soquete foi iniciada.
ConnectStop Informativo (4) Uma tentativa de iniciar uma conexão de soquete foi concluída.
ConnectFailed Informativo (4) Uma tentativa de iniciar uma conexão de soquete falhou.
AcceptStart Informativo (4) Uma tentativa de aceitar uma conexão de soquete foi iniciada.
AcceptStop Informativo (4) Uma tentativa de aceitar uma conexão de soquete foi concluída.
AcceptFailed Informativo (4) Uma tentativa de aceitar uma conexão de soquete falhou.

Provedor "System.Threading.Tasks.TplEventSource"

Esse provedor registra informações na Biblioteca de Paralelismo de tarefas, como eventos do agendador de tarefas. A tabela a seguir mostra os eventos registrados por TplEventSource:

Nome do evento Palavra-chave Nível Descrição
TaskScheduled TaskTransfer(0x1)

Tasks(0x2)
Informativo (4) Um Task é enfileirado no agendador de tarefas.
TaskStarted Tasks(0x2) Informativo (4) Um Task começou a ser executado.
TaskCompleted TaskStops(0x40) Informativo (4) Um Task terminou de ser executado.
TaskWaitBegin TaskTransfer(0x1)

TaskWait(0x2)
Informativo (4) Acionado quando uma espera implícita ou explícita em uma conclusão Task é iniciada.
TaskWaitEnd Tasks(0x2) Detalhado (5) Acionado quando a espera por uma conclusão Task é retornada.
TaskWaitContinuationStarted Tasks(0x2) Detalhado (5) Acionado quando o trabalho (método) associado a um TaskWaitEnd é iniciado.
TaskWaitContinuationCompleted TaskStops(0x40) Detalhado (5) Acionado quando o trabalho (método) associado a um TaskWaitEnd é iniciado.
AwaitTaskContinuationScheduled TaskTransfer(0x1)

Tasks(0x2)
Informativo (4) Acionado quando uma continuação assíncrona para um Task está agendada.

ASP.NET Core

O ASP.NET Core também fornece vários eventos para ajudá-lo a diagnosticar problemas na pilha de ASP.NET Core.

Para saber mais sobre os eventos em ASP.NET Core e sobre como consumi-los, consulte o Log no .NET Core e ASP.NET Core.

Núcleo do Entity Framework

O EF Core também fornece eventos para ajudá-lo a diagnosticar problemas no EF Core.

Para saber mais sobre os eventos no EF Core e como consumi-los, consulte Eventos .NET no EF Core.