Краткое руководство. Обработка первой трассировки
Испытайте TraceProcessor для доступа к данным в трассировке событий для трассировки событий Windows (ETW). TraceProcessor позволяет получать доступ к данным трассировки событий Windows в виде объектов .NET.
В этом кратком руководстве рассматриваются следующие темы:
- Установка пакета NuGet для TraceProcessor.
- Создание TraceProcessor.
- Использование TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке.
Необходимые компоненты
Visual Studio 2019
Установка пакета NuGet для TraceProcessing
.NET TraceProcessing доступен в пакете NuGet со следующим идентификатором:
Microsoft.Windows.EventTracing.Processing.All
Этот пакет можно использовать в консольном приложении для вывода командных строк процесса, содержащихся в трассировке событий Windows (ETL-файл).
Создайте консольное приложение .NET. В Visual Studio выберите "Файл", "Создать", "Проект", а затем выберите шаблон консольного приложения для C#.
Введите имя проекта, например TraceProcessorQuickstart, и нажмите "Создать".
В Обозревателе решений щелкните правой кнопкой мыши "Зависимости" и выберите "Управление пакетами NuGet...", а затем перейдите на вкладку "Обзор".
В поле поиска введите Microsoft.Windows.EventTracing.Processing.All и запустите поиск.
Выберите установку пакета NuGet с этим именем и закройте окно NuGet.
Создание TraceProcessor
Измените Program.cs, указав следующее содержимое:
using Microsoft.Windows.EventTracing; using Microsoft.Windows.EventTracing.Processes; using System; class Program { static void Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine("Usage: <trace.etl>"); return; } using (ITraceProcessor trace = TraceProcessor.Create(args[0])) { // TODO: call trace.Use... trace.Process(); Console.WriteLine("TODO: Access data from the trace"); } } }
Укажите имя трассировки, используемое при запуске проекта.
В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт "Свойства". Перейдите на вкладку "Отладка" и введите путь к трассировке (ETL-файл) в аргументах приложения.
Если файл трассировки еще не создан, для его создания можно использовать средство записи производительности Windows.
Запустите приложение.
Выберите "Отладка > Начать без отладки", чтобы запустить код.
Использование TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке.
Измените Program.cs, указав следующее содержимое:
using Microsoft.Windows.EventTracing; using Microsoft.Windows.EventTracing.Processes; using System; class Program { static void Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine("Usage: <trace.etl>"); return; } using (ITraceProcessor trace = TraceProcessor.Create(args[0])) { IPendingResult<IProcessDataSource> pendingProcessData = trace.UseProcesses(); trace.Process(); IProcessDataSource processData = pendingProcessData.Result; foreach (IProcess process in processData.Processes) { Console.WriteLine(process.CommandLine); } } } }
Повторный запуск приложения
На этот раз вы увидите список командных строк из всех процессов, которые выполнялись во время записи трассировки.
Next Steps
В этом кратком руководстве вы создали консольное приложение, установили TraceProcessor и использовали его для доступа к командным строкам процесса трассировки событий Windows. Теперь у вас есть приложение, обращающееся к данным трассировки.
Сведения о процессе — это лишь один из множества типов данных, которые хранятся в трассировке событий Windows, доступной приложению.
Следующий шаг — узнать больше о TraceProcessor и других источниках данных, к которым он может получить доступ.
Windows developer