Трассировка ETW

В примере AnalyticTrace показано, как реализовать сквозную трассировку (E2E) с помощью трассировки событий для Windows (ETW) и ETWTraceListener предоставленной этим примером. Пример основан на начале работы и включает трассировку etw.

Примечание.

Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

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

Каждый источник трассировки в модели трассировки System.Diagnostics может иметь несколько прослушивателей трассировки, которые определяют место и способ трассировки данных. Тип прослушивателя определяет формат записи данных трассировки в журнал. В следующем образце кода показано, как добавить прослушиватель в конфигурацию.

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel"
             switchValue="Verbose,ActivityTracing"
             propagateActivity="true">
            <listeners>
                <add type=
                   "System.Diagnostics.DefaultTraceListener"
                   name="Default">
                   <filter type="" />
                </add>
                <add name="ETW">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add type=
            "Microsoft.ServiceModel.Samples.EtwTraceListener, ETWTraceListener"
            name="ETW" traceOutputOptions="Timestamp">
            <filter type="" />
       </add>
    </sharedListeners>
</system.diagnostics>

Перед использованием этого прослушивателя необходимо запустить сеанс трассировки событий Windows. Этот сеанс может быть запущен с помощью программ Logman.exe или Tracelog.exe. В этот образец включен файл SetupETW.bat, поэтому можно настроить сеанс трассировки событий Windows вместе с файлом CleanupETW.bat для закрытия сеанса и завершения выполнения файла журнала.

Примечание.

Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела. Дополнительные сведения об этих средствах см. в разделе https://go.microsoft.com/fwlink/?LinkId=56580

При использовании ETWTraceListener трассировки заносятся в журнал в двоичных файлах с расширением ETL. Если трассировка ServiceModel включена, все созданные трассировки отображаются в одном и том же файле. Используйте средство просмотра трассировки служб (SvcTraceViewer.exe) для просмотра файлов журнала ETL и SVCLOG. Средство просмотра создает сквозное представление системы, позволяющее выполнять трассировку сообщения на пути от источника в место назначения и точку потребления.

Прослушиватель трассировки событий Windows поддерживает циклическое ведение журнала. Чтобы включить эту функцию, перейдите в раздел "Пуск", "Запуск" и "Введитеcmd", чтобы запустить консоль командной строки. В следующей команде замените параметр <logfilename> на имя требуемого файла журнала.

logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000

Коммутаторы -f и -max необязательны. Они указывают двоичный циклический формат и максимальный размер журнала (1000 МБ) соответственно. Коммутатор -p используется для указания поставщика трассировки. В этом примере "{411a0819-c24b-428c-83e2-26b41091702e}" является идентификатором GUID для примера поставщика трассировки событий Windows XML.

Для запуска сеанса введите следующую команду:

logman start Wcf

По завершении ведения журнала можно остановить сеанс с помощью следующей команды.

logman stop Wcf

Этот процесс создает двоичные циклические журналы, которые можно обрабатывать с помощью выбранного средства, включая средство просмотра трассировки служб (SvcTraceViewer.exe) или Tracerpt.

Вы также можете просмотреть пример циклической трассировки для получения дополнительных сведений об альтернативном прослушивателе для выполнения циклического ведения журнала.

Настройка, сборка и выполнение образца

  1. Убедитесь, что вы выполнили процедуру однократной установки для примеров Windows Communication Foundation.

  2. Чтобы создать решение, следуйте инструкциям по созданию примеров Windows Communication Foundation.

    Примечание.

    Для запуска команд RegisterProvider.bat, SetupETW.bat и CleanupETW.bat необходимо использовать учетную запись локального администратора. Если вы используете Windows Vista или более поздней версии, необходимо также запустить командную строку с повышенными привилегиями. Для этого щелкните правой кнопкой мыши значок командной строки и нажмите кнопку "Запустить от имени администратора".

  3. Перед выполнением примера запустите файл RegisterProvider.bat на стороне клиента и сервера. При этом выполняется настройка получаемого файла ETWTracingSampleLog.etl для создания трассировок, которые можно считать с помощью программы Service Trace Viewer. Этот файл можно найти в папке C:\logs. Если эта папка не существует, ее необходимо создать, в противном случае трассировки создаваться не будут. Затем запустите файл SetupETW.bat на клиентском и серверном компьютерах, чтобы начать сеанс трассировки событий Windows. Файл SetupETW.bat можно найти в папке CS\Client.

  4. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".

  5. По завершении образца запустите файл CleanupETW.bat, чтобы завершить создание файла ETWTracingSampleLog.etl.

  6. Откройте файл ETWTracingSampleLog.etl с помощью программы Service Trace Viewer. Будет предложено сохранить двоичный файл как файл с расширением SVCLOG.

  7. Откройте только что созданный файл с расширением SVCLOG с помощью программы Service Trace Viewer, чтобы просмотреть трассировки событий Windows и трассировки ServiceModel.

См. также