Inicio rápido: procesamiento del primer seguimiento
Pruebe TraceProcessor para acceder a los datos de un seguimiento de eventos para Windows (ETW). TraceProcessor le permite acceder a los datos de seguimiento de ETW como objetos de .NET.
En este tutorial de inicio rápido, aprenderá a realizar lo siguiente:
- Instalar el paquete de NuGet TraceProcessing.
- Crear una instancia de TraceProcessor.
- Usar TraceProcessor para acceder a las líneas de comandos de proceso incluidas en el seguimiento.
Prerrequisitos
Visual Studio 2019
Instalación del paquete de NuGet TraceProcessing
TraceProcessing de .NET está disponible en NuGet con el siguiente identificador de paquete:
Microsoft.Windows.EventTracing.Processing.All
Puede usar este paquete en una aplicación de consola para enumerar las líneas de comandos de proceso incluidas en un seguimiento de ETW (archivo .etl).
Cree una nueva aplicación de consola de .NET. En Visual Studio, seleccione Archivo, Nuevo, Proyecto... y elija la plantilla Aplicación de consola para C#.
Escriba un nombre de proyecto, por ejemplo, TraceProcessorQuickstart, y seleccione Crear.
En el Explorador de soluciones, haga clic con el botón derecho en Dependencias y elija Administrar paquetes NuGet. Luego, cambie a la pestaña Examinar.
En el cuadro Buscar, escriba Microsoft.Windows.EventTracing.Processing.All y realice la búsqueda.
Seleccione Instalar en el paquete NuGet con ese nombre y cierre la configuración de NuGet.
Creación de una instancia de TraceProcessor
Cambie Program.cs al siguiente contenido:
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"); } } }
Proporcione un nombre de seguimiento para usarlo al ejecutar el proyecto.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Propiedades. Cambie a la pestaña Depurar y escriba la ruta de acceso a un seguimiento (archivo .etl) en los argumentos de la aplicación.
Si aún no tiene ningún archivo de seguimiento, puede usar Windows Performance Recorder para crear uno.
Ejecute la aplicación.
Elija Depurar e Iniciar sin depurar para ejecutar el código.
Use TraceProcessor para acceder a las líneas de comandos de proceso incluidas en el seguimiento.
Cambie Program.cs al siguiente contenido:
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); } } } }
Vuelva a ejecutar la aplicación.
Ahora debería ver una lista de líneas de comandos de todos los procesos que se ejecutaban mientras se registraba el seguimiento.
Pasos siguientes
En este inicio rápido, ha creado una aplicación de consola, ha instalado TraceProcessor y lo ha usado para acceder a las líneas de comandos de proceso desde un seguimiento ETW. Ahora cuenta con una aplicación con acceso a los datos de seguimiento.
La información del proceso solo es uno de los muchos tipos de datos almacenados en un seguimiento ETW al que la aplicación puede acceder.
El siguiente paso consiste en analizar de forma más detallada TraceProcessor y los demás orígenes de datos a los que puede acceder.