Partilhar via


Guia de início rápido: processe seu primeiro rastreamento

Experimente o TraceProcessor para acessar dados em um rastreamento ETW (Event Tracing for Windows). TraceProcessor permite que você acesse dados de rastreamento ETW como objetos .NET.

Neste início rápido você aprende a:

  1. Instale o pacote NuGet 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 TraceProcessing

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

Microsoft.Windows.EventTracing.Processing.All

Você pode usar esse pacote em um aplicativo de console para listar as linhas de comando do processo contidas em um rastreamento ETW (arquivo .etl).

  1. Crie um novo aplicativo de console .NET. No Visual Studio, selecione Arquivo, Novo, Projeto..., e escolha o modelo 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 mude para o separador Procurar.

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

    Selecione Instalar no pacote NuGet com esse nome e feche a janela 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 para usar 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) em Argumentos da aplicação.

    Se ainda não tiveres um ficheiro de rastreamento, podes usar o Gravador de Desempenho do Windows para criar um.

  3. Execute o aplicativo.

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

Use 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ê verá uma lista de linhas de comando de todos os processos que estavam sendo executados enquanto o rastreamento estava sendo gravado.

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 de processo a partir de um rastreamento ETW. Agora você tem um aplicativo que acessa dados de rastreamento.

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

O próximo passo é analisar mais detalhadamente o TraceProcessor e as outras fontes de dados que ele pode acessar.