Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Трассировка событий для Windows (ETW) — это эффективное средство трассировки на уровне ядра, которое позволяет регистрировать события ядра или события, определенные приложением, в файл журнала. События можно использовать в режиме реального времени или из файла журнала и использовать их для отладки приложения или определения проблем с производительностью приложения.
EtW позволяет динамически включать или отключать трассировку событий, позволяя выполнять подробную трассировку в рабочей среде, не требуя перезапуска компьютера или приложения.
API трассировки событий разбит на три отдельных компонента:
- контроллеры, которые запускают и останавливают сессионное трассирование событий и включают поставщиков
- поставщики, которые организуют события
- потребители, которые потребляют события
На следующей схеме показана модель трассировки событий.
Контроллеры
Контроллеры — это приложения, которые определяют размер и расположение файла журнала, запускают и останавливают сеансы трассировки событий, позволяют поставщикам регистрировать события в сеансе, управляют размером буферного пула и получают статистику выполнения для сеансов. Статистика сеансов включает количество используемых буферов, количество доставленных буферов и количество событий и буферов, потерянных.
Дополнительные сведения см. в разделе Управление сеансами трассировки событий.
Поставщики
Поставщики — это приложения, содержащие инструменты трассировки событий. После регистрации поставщика контроллер может включить или отключить трассировку событий в поставщике. Поставщик определяет его интерпретацию включения или отключения. Как правило, включенный поставщик создает события, в то время как отключенный поставщик их не создает. Это позволяет добавлять трассировку событий в приложение без необходимости создавать события все время.
Хотя модель ETW разделяет контроллер и поставщик на отдельные приложения, приложение может содержать оба компонента.
Дополнительные сведения см. в разделе Предоставление событий.
Типы поставщиков
Существует четыре основных типа поставщиков: поставщики MOF (классическая модель), поставщики WPP, поставщики манифестов и поставщики TraceLogging. При написании приложений для Windows Vista или более поздних версий, которые не должны поддерживать устаревшие системы, следует использовать манифестный поставщик или поставщика TraceLogging.
Поставщики MOF (классические):
- Используйте функции RegisterTraceGuids и TraceEvent для регистрации и записи событий.
- Используйте классы MOF для определения событий, чтобы потребители знали, как их использовать.
- Функция может быть включена только во время одного сеанса трассировки в один момент времени.
Поставщики WPP:
- Используйте функции RegisterTraceGuids и TraceEvent для регистрации и записи событий.
- Связаны файлы TMF (скомпилированные в PDB-файл двоичного файла), содержащие информацию о декодировании, полученную из сканирования инструментальной части WPP препроцессором в исходном коде.
- Можно включить только один сеанс трассировки одновременно.
Поставщики, базирующиеся на манифесте:
- Используйте EventRegister и EventWrite для регистрации и записи событий.
- Используйте манифест для определения событий, чтобы потребители знали, как их использовать.
- Можно включить до восьми сеансов трассировки одновременно.
поставщики TraceLogging:
- Используйте TraceLoggingRegister и TraceLoggingWrite для регистрации и записи событий.
- Используйте самоописывающиеся события, чтобы они сами содержали всю необходимую информацию для их использования.
- Можно включить до восьми сеансов трассировки одновременно.
Все поставщики событий в основном используют семейство API трассировки событий (TraceEvent для устаревших технологий и EventWrite/EventWriteEx для новых). Поставщики событий просто отличаются в типах полей, которые они хранят в полезных данных событий и где хранятся связанные сведения о декодировании событий.
Потребители
Потребители — это приложения, которые выбирают один или несколько сеансов трассировки событий в качестве источника событий. Потребитель может одновременно запрашивать события из нескольких сеансов трассировки событий; система предоставляет события в хронологическом порядке. Потребители могут получать события, хранящиеся в файлах журнала, или из сеансов, которые предоставляют события в режиме реального времени. При обработке событий потребитель может указать время начала и окончания, и будут доставлены только события, происходящие в заданном интервале времени.
Дополнительные сведения см. в разделе Использование событий.
Отсутствующие события
Perfmon, System Diagnostics и другие системные средства могут сообщать о отсутствующих событиях в журнале событий и указывать, что параметры трассировки событий для Windows (ETW) не могут быть оптимальными. События могут быть потеряны по ряду причин:
Общий размер события превышает 64 КБ. К ним относятся заголовок ETW, а также данные или нагрузка. Пользователь не контролирует эти отсутствующие события, так как размер события настраивается приложением.
Размер буфера ETW меньше общего размера события. Пользователь не имеет контроля над этими отсутствующими событиями, так как размер события настраивается приложением для ведения журнала событий.
Для ведения журнала в режиме реального времени, если потребитель не успевает правильно обрабатывать события или вообще отсутствует, резервный журнал заполняется. Это может произойти, если служба журнала событий останавливается и запускается в то время, когда ведется регистрация событий. У пользователя нет контроля над этими отсутствующими событиями.
При входе в файл диск слишком медленно, чтобы обеспечить скорость ведения журнала.
По каким-либо из этих причин сообщите об этих проблемах поставщику приложения или службы, создающей события. Эти проблемы могут быть устранены только разработчиком приложения или службой ведения журнала событий. Если отсутствующие события передаются в службе журналов событий, это может указывать на проблему с конфигурацией службы журналов событий. У пользователя может быть ограничена возможность увеличить максимальное дисковое пространство, которое будет использоваться службой журналов событий, что может уменьшить количество отсутствующих событий.