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


Краткое руководство. Обработка первой трассировки

Испытайте TraceProcessor для доступа к данным в трассировке событий для трассировки событий Windows (ETW). TraceProcessor позволяет получать доступ к данным трассировки событий Windows в виде объектов .NET.

В этом кратком руководстве рассматриваются следующие темы:

  1. Установка пакета NuGet для TraceProcessor.
  2. Создание TraceProcessor.
  3. Использование TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке.

Необходимые компоненты

Visual Studio 2019

Установка пакета NuGet для TraceProcessing

.NET TraceProcessing доступен в пакете NuGet со следующим идентификатором:

Microsoft.Windows.EventTracing.Processing.All

Этот пакет можно использовать в консольном приложении для вывода командных строк процесса, содержащихся в трассировке событий Windows (ETL-файл).

  1. Создайте консольное приложение .NET. В Visual Studio выберите "Файл", "Создать", "Проект", а затем выберите шаблон консольного приложения для C#.

    Введите имя проекта, например TraceProcessorQuickstart, и нажмите "Создать".

  2. В Обозревателе решений щелкните правой кнопкой мыши "Зависимости" и выберите "Управление пакетами NuGet...", а затем перейдите на вкладку "Обзор".

  3. В поле поиска введите Microsoft.Windows.EventTracing.Processing.All и запустите поиск.

    Выберите установку пакета NuGet с этим именем и закройте окно NuGet.

Создание TraceProcessor

  1. Измените 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");
            }
        }
    }
    
  2. Укажите имя трассировки, используемое при запуске проекта.

    В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт "Свойства". Перейдите на вкладку "Отладка" и введите путь к трассировке (ETL-файл) в аргументах приложения.

    Если файл трассировки еще не создан, для его создания можно использовать средство записи производительности Windows.

  3. Запустите приложение.

    Выберите "Отладка > Начать без отладки", чтобы запустить код.

Использование TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке.

  1. Измените 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);
                }
            }
        }
    }
    
  2. Повторный запуск приложения

    На этот раз вы увидите список командных строк из всех процессов, которые выполнялись во время записи трассировки.

Next Steps

В этом кратком руководстве вы создали консольное приложение, установили TraceProcessor и использовали его для доступа к командным строкам процесса трассировки событий Windows. Теперь у вас есть приложение, обращающееся к данным трассировки.

Сведения о процессе — это лишь один из множества типов данных, которые хранятся в трассировке событий Windows, доступной приложению.

Следующий шаг — узнать больше о TraceProcessor и других источниках данных, к которым он может получить доступ.