Well-known event providers in .NET
The .NET runtime and libraries write diagnostic events through a number of different event providers. Depending on your diagnostic needs, you can choose the appropriate providers to enable. This article describes some of the most commonly used event providers in the .NET runtime and libraries.
CoreCLR
"Microsoft-Windows-DotNETRuntime" provider
This provider emits various events from the .NET runtime, including GC, loader, JIT, exception, and other events. Read more about each event from this provider in Runtime Provider Events List.
"Microsoft-DotNETCore-SampleProfiler" provider
This provider is a .NET runtime event provider that is used for CPU sampling for managed callstacks. When enabled, it captures a snapshot of each thread's managed callstack every millisecond. To enable this capture, you must specify an EventLevel of Informational
or higher.
Framework libraries
"Microsoft-Extensions-DependencyInjection" provider
This provider logs information from DependencyInjection. The following table shows events logged by the Microsoft-Extensions-DependencyInjection
provider:
Event name | Keyword | Level | Description |
---|---|---|---|
CallSiteBuilt |
Verbose (5) | A call site has been built. | |
ServiceResolved |
Verbose (5) | A service has been resolved. | |
ExpressionTreeGenerated |
Verbose (5) | An expression tree has been generated. | |
DynamicMethodBuilt |
Verbose (5) | A DynamicMethod has been built. | |
ScopeDisposed |
Verbose (5) | A scope has been disposed. | |
ServiceRealizationFailed |
Verbose (5) | A service realization has failed. | |
ServiceProviderBuilt |
ServiceProviderInitialized(0x1) |
Verbose (5) | A ServiceProvider has been built. |
ServiceProviderDescriptors |
ServiceProviderInitialized(0x1) |
Verbose (5) | A list of ServiceDescriptor that has been used during the ServiceProvider build. |
"System.Buffers.ArrayPoolEventSource" provider
This provider logs information from the ArrayPool. The following table shows the events logged by ArrayPoolEventSource
:
Event name | Level | Description |
---|---|---|
BufferRented |
Verbose (5) | A buffer is successfully rented. |
BufferAllocated |
Informational (4) | A buffer is allocated by the pool. |
BufferReturned |
Verbose (5) | A buffer is returned to the pool. |
BufferTrimmed |
Informational (4) | A buffer is attempted to be freed due to memory pressure or inactivity. |
BufferTrimPoll |
Informational (4) | A check is being made to trim buffers. |
BufferDropped |
Informational (4) | A buffer is dropped when returned to the pool. |
"System.Net.Http" provider
This provider logs information from the HTTP stack. The following table shows the events logged by System.Net.Http
provider:
Event name | Level | Description |
---|---|---|
RequestStart | Informational (4) | An HTTP request has started. |
RequestStop | Informational (4) | An HTTP request has finished. |
RequestFailed | Error (2) | An HTTP request has failed. |
ConnectionEstablished | Informational (4) | An HTTP connection has been established. |
ConnectionClosed | Informational (4) | An HTTP connection has been closed. |
RequestLeftQueue | Informational (4) | An HTTP request has left the request queue. |
RequestHeadersStart | Informational (4) | An HTTP request for header has started. |
RequestHeaderStop | Informational (4) | An HTTP request for header has finished. |
RequestContentStart | Informational (4) | An HTTP request for content has started. |
RequestContentStop | Informational (4) | An HTTP request for content has finished. |
ResponseHeadersStart | Informational (4) | An HTTP response for header has started. |
ResponseHeaderStop | Informational (4) | An HTTP response for header has finished. |
ResponseContentStart | Informational (4) | An HTTP response for content has started. |
ResponseContentStop | Informational (4) | An HTTP response for content has finished. |
"System.Net.NameResolution" provider
This provider logs information related to domain name resolution. The following table shows the events logged by System.Net.NameResolution
:
Event name | Level | Description |
---|---|---|
ResolutionStart |
Informational (4) | A domain name resolution has started. |
ResolutionStop |
Informational (4) | A domain name resolution has finished. |
ResolutionFailed |
Informational (4) | A domain name resolution has failed. |
"System.Net.Sockets" provider
This provider logs information from Socket. The following table shows the events logged by System.Net.Sockets
provider:
Event name | Level | Description |
---|---|---|
ConnectStart |
Informational (4) | An attempt to start a socket connection has started. |
ConnectStop |
Informational (4) | An attempt to start a socket connection has finished. |
ConnectFailed |
Informational (4) | An attempt to start a socket connection has failed. |
AcceptStart |
Informational (4) | An attempt to accept a socket connection has started. |
AcceptStop |
Informational (4) | An attempt to accept a socket connection has finished. |
AcceptFailed |
Informational (4) | An attempt to accept a socket connection has failed. |
"System.Threading.Tasks.TplEventSource" provider
This provider logs information on the Task Parallel Library, such as Task scheduler events. The following table shows the events logged by TplEventSource
:
Event name | Keyword | Level | Description |
---|---|---|---|
TaskScheduled |
TaskTransfer (0x1 )Tasks (0x2 ) |
Informational (4) | A Task is queued to the Task scheduler. |
TaskStarted |
Tasks (0x2 ) |
Informational (4) | A Task has started executing. |
TaskCompleted |
TaskStops (0x40 ) |
Informational (4) | A Task has finished executing. |
TaskWaitBegin |
TaskTransfer (0x1 )TaskWait (0x2 ) |
Informational (4) | Fired when an implicit or an explicit wait on a Task completion has started. |
TaskWaitEnd |
Tasks (0x2 ) |
Verbose (5) | Fired when the wait for a Task completion returns. |
TaskWaitContinuationStarted |
Tasks (0x2 ) |
Verbose (5) | Fired when the work (method) associated with a TaskWaitEnd is started. |
TaskWaitContinuationCompleted |
TaskStops (0x40 ) |
Verbose (5) | Fired when the work (method) associated with a TaskWaitEnd is completed. |
AwaitTaskContinuationScheduled |
TaskTransfer (0x1 )Tasks (0x2 ) |
Informational (4) | Fired when the an asynchronous continuation for a Task is scheduled. |
ASP.NET Core
ASP.NET Core also provides several events to help you diagnose issues in the ASP.NET Core stack.
To learn more about the events in ASP.NET Core and how to consume them, see Logging in .NET Core and ASP.NET Core.
Entity Framework core
EF Core also provides events to help you diagnose issues in EF Core.
To learn more about the events in EF Core and how to consume them, see .NET Events in EF Core.