Трассировка событий для целевого объекта Windows

Применимо к:SQL Server

Прежде чем использовать средство трассировки событий для Windows (ETW) в качестве назначения, рекомендуется сначала попрактиковаться в работе с данным средством. Трассировка событий Windows используется совместно с расширенными событиями или в качестве потребителя расширенных событий. Следующие внешние ссылки помогут получить начальные сведения о трассировке событий Windows.

Цель «Трассировка событий Windows» является одноэлементным целевым объектом, хотя она может быть добавлена в несколько сеансов. Если событие происходит в нескольких сеансах, то данное событие будет передано цели трассировки событий Windows по одному разу для каждого произошедшего события. Каждый процесс может иметь только одну подсистему расширенных событий.

Важно!

Чтобы целевой объект ETW работал, учетная запись запуска службы SQL Server должна быть членом группы пользователей журнала производительности.

Конфигурация событий в сеансе ETW управляется процессом, в котором размещена подсистема расширенных событий. Эта подсистема управляет последовательностью и условиями запуска событий.

После привязки к сеансу расширенных событий, который присоединяет целевой объект ETW в первый раз во время существования процесса, целевой объект ETW открывает один сеанс ETW в поставщике SQL Server. Если сеанс ETW уже существует, цель ETW получает ссылку на существующий сеанс. Этот сеанс ETW используется для всех экземпляров SQL Server на определенном компьютере. Сеанс ETW получает все события от сеансов, имеющих цель ETW.

Поскольку приложению ETW требуются поставщики, способные потреблять события и направлять их в ETW, в сеансе включаются все пакеты расширенных событий. При запуске события цель ETW отправляет его в сеанс, в котором включен поставщик события.

Назначение ETW поддерживает синхронную публикацию событий в потоке, запускающем это событие. Однако целевой объект ETW не поддерживает асинхронную публикацию событий.

Целевой объект ETW не поддерживает управление внешними контроллерами ETW, такими как Logman.exe. Для трассировки событий Windows нужно создать сеанс события с назначением трассировки событий Windows. Дополнительные сведения см. в статье CREATE EVENT SESSION (Transact-SQL).

Примечание.

При включении назначения ETW создается сеанс ETW с именем XE_DEFAULT_ETW_SESSION. Если сеанс с именем XE_DEFAULT_ETW_SESSION уже существует, он используется без изменения свойств существующего сеанса. XE_DEFAULT_ETW_SESSION используется для всех экземпляров SQL Server. После запуска сеанса XE_DEFAULT_ETW_SESSION необходимо остановить его с помощью контроллера ETW, например инструмента Logman. Например, можно выполнить в командной строке следующую команду: logman stop XE_DEFAULT_ETW_SESSION -ets.

В следующей таблице описаны доступные параметры для настройки назначения ETW.

Вариант Допустимые значения Description
default_xe_session_name Любая строка длиной до 256 символов. Это значение является необязательным. Имя сеанса расширенных событий. По умолчанию это XE_DEFAULT_ETW_SESSION.
default_etw_session_logfile_path Любая строка длиной до 256 символов. Это значение является необязательным. Путь к файлу журнала сеанса расширенных событий. По умолчанию это %TEMP%\XEEtw.etl.
default_etw_session_logfile_size_mb Любое целое число без знака. Это значение является необязательным. Размер файла журнала для сеанса расширенных событий (в мегабайтах, МБ). По умолчанию установлено значение 20 МБ.
default_etw_session_buffer_size_kb Любое целое число без знака. Это значение является необязательным. Размер буфера в памяти (в килобайтах) для сеанса расширенных событий. Значение по умолчанию — 128 КБ.
retries Любое целое число без знака. Число попыток публикации события в подсистеме ETW до удаления события. По умолчанию установлено значение 0.

Конфигурация указанных параметров не обязательна. Цель ETW использует для них параметры по умолчанию.

Цель ETW отвечает за следующие действия.

  • Создание сеанса ETW по умолчанию.

  • Регистрация всех пакетов расширенных событий в приложении ETW. Это гарантирует, что события не удаляются трассировками трассировки событий.

  • Управление потоком событий, направляемых приложению ETW. Цель ETW создает событие ETW с данными, полученными от расширенных событий, и отправляет это событие в соответствующий сеанс ETW. Если событие больше размера буфера или данные не могут поместиться в одно событие ETW, ETW разбивает событие на фрагменты.

  • Хранение пакетов расширенных событий включено постоянно.

Приложение ETW по умолчанию использует следующие расположения.

  • Выходной файл ETW: %TEMP%\XEEtw.etl.

    Важно!

    Путь к файлу нельзя изменить после запуска первого сеанса.

  • Файлы формата управляемых объектов (MOF) находятся в <пути> установки\Microsoft SQL Server\Shared. Дополнительные сведения см. в разделе Формат управляющих объектов библиотеки MSDN.

Добавление целевого объекта в сеанс

Для добавления назначения счетчика событий в сеанс расширенных событий следует использовать одну из следующих инструкций при создании или изменении сеанса события:

ADD TARGET package0.etw_classic_sync_target

Дополнительные сведения о полном примере, который показывает, как использовать назначение трассировки событий, включая просмотр данных, см. в разделе отслеживать активность системы с помощью расширенных событий.