Guia de Início Rápido: Processar seu primeiro rastreamento
Experimente o TraceProcessor para acessar os dados em um rastreamento ETW (Rastreamento de Eventos para Windows). O TraceProcessor permite que você acesse os dados de rastreamento ETW como objetos .NET.
Neste guia de início rápido, você aprenderá a:
- Instalar o pacote NuGet do TraceProcessing.
- Criar um TraceProcessor.
- Usar o 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 de pacote:
Microsoft.Windows.EventTracing.Processing.All
Você pode usar esse pacote em um aplicativo de console para listar as linhas de comando de processo contidas em um rastreamento ETW (arquivo .etl).
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.
No Gerenciador de Soluções, clique com o botão direito do mouse em Dependências, escolha Gerenciar Pacotes NuGet… e alterne para a guia Procurar.
Na caixa de pesquisa, insira Microsoft.Windows.EventTracing.Processing.All e pesquise-o.
Selecione Instalar no pacote de NuGet com esse nome e feche a janela NuGet.
Criar um TraceProcessor
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"); } } }
Forneça um nome de rastreamento a ser usado na execução do 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 do aplicativo.
Caso ainda não tenha um arquivo de rastreamento, use o Windows Performance Recorder para criar um.
Executar o aplicativo.
Escolha Depurar, Iniciar sem Depuração para executar o código.
Usar o TraceProcessor para acessar as linhas de comando do processo contidas no rastreamento
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); } } } }
Execute o aplicativo novamente.
Desta vez, você verá uma lista de linhas de comando de todos os processos que estavam em execução enquanto o rastreamento estava sendo gravado.
Próximas etapas
Neste guia de início rápido, você criou um aplicativo de console, instalou o TraceProcessor e o utilizou para acessar as 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 o seu aplicativo pode acessar.
A próxima etapa será conhecer mais de perto o TraceProcessor e as outras fontes de dados que ele pode acessar.
Windows developer