Compartilhar via


Início Rápido: Processar seu primeiro rastreamento

Experimente o TraceProcessor para acessar dados em um rastreamento ETW (Rastreamento de Eventos para Windows). O TraceProcessor permite que você acesse dados de rastreamento etw como objetos .NET.

Neste início rápido, você aprenderá a:

  1. Instale o pacote NuGet do TraceProcessing.
  2. Crie um TraceProcessor.
  3. Use TraceProcessor para acessar as linhas de comando do processo contidas no rastreamento.

Pré-requisitos

Visual Studio 2019

Instalar o pacote NuGet do TraceProcessing

O .NET TraceProcessing está disponível no NuGet com a seguinte ID do pacote:

Microsoft.Windows.EventTracing.Processing.All

Você pode usar este pacote em um aplicativo de console para listar as linhas de comando dos processos contidas em um rastreamento ETW (arquivo .etl).

  1. Crie um novo aplicativo de console do .NET. No Visual Studio, selecione Arquivo, Novo, Projeto...e escolha o modelo de Aplicativo de Console para C#.

    Insira um nome de projeto, por exemplo, TraceProcessorQuickstart e escolha Criar.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse em Dependências e escolha Gerenciar Pacotes NuGet... e alterne para a guia Procurar.

  3. Na caixa Pesquisar, insira Microsoft.Windows.EventTracing.Processing.All e pesquise.

    Selecione Instalar no pacote NuGet com esse nome e feche a janela do NuGet.

Criar um TraceProcessor

  1. Altere Program.cs para o seguinte conteúdo:

    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. Forneça um nome de rastreamento a ser usado ao executar o projeto.

    No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e escolha Propriedades. Alterne para a guia Depurar e insira o caminho para um rastreamento (arquivo .etl) nos argumentos do aplicativo.

    Se você ainda não tiver um arquivo de rastreamento, você pode usar o Windows Performance Recorder para criar um.

  3. Execute o aplicativo.

    Escolha Depurar, Iniciar sem Depuração para executar seu código.

Usar TraceProcessor para acessar as linhas de comando do processo contidas no rastreamento

  1. Altere Program.cs para o seguinte conteúdo:

    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. Execute o aplicativo novamente.

    Desta vez, você deverá ver uma lista de linhas de comando de todos os processos que estavam sendo executados enquanto o rastreamento estava sendo registrado.

Próximas etapas

Neste início rápido, você criou um aplicativo de console, instalou o TraceProcessor e o usou para acessar linhas de comando do processo de um rastreamento ETW. Agora você tem um aplicativo que acessa dados de rastreamento.

As informações do processo são apenas um dos muitos tipos de dados armazenados em um rastreamento ETW que seu aplicativo pode acessar.

A próxima etapa é olhar mais de perto para o TraceProcessor e as outras fontes de dados que ele pode acessar.