Поделиться через


Стандартные поставщики событий в .NET

Библиотеки и среда выполнения .NET записывают диагностические события с помощью ряда разных поставщиков событий. Вы можете включать нужные поставщики в зависимости от задач диагностики. В этой статье описываются некоторые популярные поставщики событий в библиотеках и среде выполнения .NET.

CoreCLR

Поставщик "Microsoft-Windows-DotNETRuntime"

Этот поставщик генерирует различные события из среды выполнения .NET, в том числе события сборки мусора, загрузчика, JIT, исключения и другие события. Дополнительные сведения обо всех событиях этого поставщика см. в списке событий поставщика среды выполнения.

Поставщик "Microsoft-DotNETCore-SampleProfiler"

Этот поставщик событий среды выполнения .NET используется для выборки циклов ЦП для управляемых стеков вызовов. При включении он записывает моментальный снимок управляемых вызовов каждого потока в каждом миллисекундах. Чтобы использовать эту возможность, необходимо настроить уровень EventLevel не ниже Informational.

Библиотеки платформы

Поставщик "Microsoft-Extensions-DependencyInjection"

Этот поставщик регистрирует сведения из DependencyInjection. События, регистрируемые поставщиком Microsoft-Extensions-DependencyInjection, представлены в следующей таблице:

Имя события Ключевое слово Level Description
CallSiteBuilt Подробный (5) Создан сайт вызова.
ServiceResolved Подробный (5) Была разрешена служба.
ExpressionTreeGenerated Подробный (5) Создано дерево выражения.
DynamicMethodBuilt Подробный (5) Создан DynamicMethod.
ScopeDisposed Подробный (5) Область удалена.
ServiceRealizationFailed Подробный (5) Сбой реализации службы.
ServiceProviderBuilt ServiceProviderInitialized(0x1) Подробный (5) Создан ServiceProvider.
ServiceProviderDescriptors ServiceProviderInitialized(0x1) Подробный (5) Список ServiceDescriptor, который использовался при компиляции ServiceProvider.

Поставщик "System.Buffers.ArrayPoolEventSource"

Этот поставщик регистрирует сведения из ArrayPool. События, регистрируемые поставщиком ArrayPoolEventSource, представлены в следующей таблице:

Имя события Level Description
BufferRented Подробный (5) Буфер успешно арендован.
BufferAllocated Информационный (4) Буфер выделен из пула.
BufferReturned Подробный (5) Буфер возвращен в пул.
BufferTrimmed Информационный (4) Предпринята попытка освободить буфер из-за нехватки памяти или отсутствия активности.
BufferTrimPoll Информационный (4) Выполняется проверка для усечения буферов.
BufferDropped Информационный (4) Буфер удаляется при возвращении в пул.

Поставщик "System.Net.Http"

Этот поставщик регистрирует сведения из стека HTTP. События, регистрируемые поставщиком System.Net.Http, представлены в следующей таблице:

Имя события Level Description
RequestStart Информационный (4) Начало HTTP-запроса.
RequestStop Информационный (4) Конец HTTP-запроса.
RequestFailed Ошибка (2) Сбой HTTP-запроса.
ConnectionEstablished Информационный (4) Установлено HTTP-соединение.
ConnectionClosed Информационный (4) HTTP-соединение закрыто.
RequestLeftQueue Информационный (4) HTTP-запрос покинул очередь запросов.
RequestHeadersStart Информационный (4) Начало HTTP-запроса заголовка.
RequestHeaderStop Информационный (4) Конец HTTP-запроса заголовка.
RequestContentStart Информационный (4) Начало HTTP-запроса содержимого.
RequestContentStop Информационный (4) Конец HTTP-запроса содержимого.
ResponseHeadersStart Информационный (4) Начало HTTP-ответа для заголовка.
ResponseHeaderStop Информационный (4) Конец HTTP-ответа для заголовка.
ResponseContentStart Информационный (4) Начало HTTP-ответа для содержимого.
ResponseContentStop Информационный (4) Конец HTTP-ответа для содержимого.

Поставщик "System.Net.NameResolution"

Этот поставщик регистрирует сведения, связанные с разрешением доменных имен. События, регистрируемые поставщиком System.Net.NameResolution, представлены в следующей таблице:

Имя события Level Description
ResolutionStart Информационный (4) Разрешение доменных имен начато.
ResolutionStop Информационный (4) Разрешение доменных имен завершено.
ResolutionFailed Информационный (4) Разрешение доменных имен завершилось сбоем.

Поставщик "System.Net.Sockets"

Этот поставщик регистрирует сведения из Socket. События, регистрируемые поставщиком System.Net.Sockets, представлены в следующей таблице:

Имя события Level Description
ConnectStart Информационный (4) Предпринята попытка запустить подключение к сокету.
ConnectStop Информационный (4) Попытка запустить подключение к сокету завершена.
ConnectFailed Информационный (4) Попытка запустить подключение к сокету завершилась сбоем.
AcceptStart Информационный (4) Предпринята попытка принять подключение к сокету.
AcceptStop Информационный (4) Попытка принять подключение к сокету завершена.
AcceptFailed Информационный (4) Попытка принять подключение к сокету завершилась сбоем.

Поставщик "System.Threading.Tasks.TplEventSource"

Этот поставщик регистрирует сведения, относящиеся к библиотеке параллельных задач, например события планировщика задач. События, регистрируемые поставщиком TplEventSource, представлены в следующей таблице:

Имя события Ключевое слово Level Description
TaskScheduled TaskTransfer(0x1)

Tasks(0x2)
Информационный (4) Объект Task помещен в очередь планировщика задач.
TaskStarted Tasks(0x2) Информационный (4) Начато выполнение объекта Task.
TaskCompleted TaskStops(0x40) Информационный (4) Выполнение объекта Task завершено.
TaskWaitBegin TaskTransfer(0x1)

TaskWait(0x2)
Информационный (4) Возникает при начале неявного или явного ожидания завершения объекта Task.
TaskWaitEnd Tasks(0x2) Подробный (5) Возникает при возврате ожидания завершения объекта Task.
TaskWaitContinuationStarted Tasks(0x2) Подробный (5) Возникает при запуске рабочего элемента (метода), связанного с TaskWaitEnd.
TaskWaitContinuationCompleted TaskStops(0x40) Подробный (5) Возникает при завершении рабочего элемента (метода), связанного с TaskWaitEnd.
AwaitTaskContinuationScheduled TaskTransfer(0x1)

Tasks(0x2)
Информационный (4) Возникает при планировании асинхронного продолжения для объекта Task.

ASP.NET Core

В ASP.NET Core также предусмотрен ряд событий, помогающих диагностировать проблемы в стеке ASP.NET Core.

Дополнительные сведения о событиях в ASP.NET Core и их использовании см. в разделе Ведение журнала в .NET Core и ASP.NET Core.

Entity Framework Core

EF Core также предоставляет события, которые помогают диагностировать проблемы в EF Core.

Дополнительные сведения о событиях в EF Core и их использовании см. в разделе События .NET в EF Core .