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


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

В примере AnalyticTrace показано, как реализовать сквозную трассировку (E2E) с помощью трассировки событий для Windows (ETW) и ETWTraceListener предоставленной этим примером. Пример основан на руководстве по началу работы Getting Started и включает трассировку 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>

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

Замечание

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

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

Прослушиватель трассировки ETW поддерживает циклическое ведение журнала. Чтобы включить эту функцию, перейдите в раздел "Пуск", "Запуск" и "Введите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 для "XML ETW Sample Provider".

Чтобы запустить сеанс, введите следующую команду.

logman start Wcf

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

logman stop Wcf

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

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

Настройка, сборка и запуск примера

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

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

    Замечание

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

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

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

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

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

  7. Откройте только что созданный файл svclog в средстве просмотра трассировки службы, чтобы просмотреть трассировки ETW и ServiceModel.

См. также