2010-12-09 13 views

Respuesta

7

Según lo que puedo encontrar, parece que el formato de archivo .blg es de propiedad exclusiva y la especificación no se ha publicado abiertamente. Dicho esto, no creo que pueda encontrar un marco o biblioteca que realice un análisis en bruto de este formato. Escribir una biblioteca para analizar este formato sin la especificación no está exento de riesgos ya que es probable que haya que hacer suposiciones ... incluso si tuviera que aplicar ingeniería inversa al formato binario, siempre existe la posibilidad de que pierda ciertas reglas en la implementación del analizador causando problemas potenciales en el camino.

Dicho esto, puedo pensar en otras 2 opciones para analizar archivos de registro binarios para su uso dentro de una aplicación .NET. Import-Counter cmdlet

  1. de PowerShell se podría utilizar para importar datos de contador de un archivo de BLG que resulta en objetos para cada muestra de contador en la fuente. El resultado resultante se puede usar de varias maneras. El ejemplo más simple que puedo pensar sería convertir la fuente a formato CSV para su posterior procesamiento:

    C:\PS> $data = import-counter .\exampledata.blg
    C:\PS> $data | export-counter -path .\output.csv -FileFormat csv

  2. relog es otra opción. Esta es una utilidad de línea de comandos que se envía con la mayoría de las versiones principales del sistema operativo Windows. Una vez más, el enfoque aquí sería convertir el archivo blg en formato CSV para facilitar el análisis. Ejemplo:

    relog -f csv inputfile.blg -o outputFile.csv

Teniendo en cuenta las opciones mencionado anteriormente, deberá ser capaz de ir de allí. Sería muy fácil PowerShell se ejecutan o relog de un programa en C# usando Process.Start()

+0

Muchas gracias! Creo que el relog es correcto para mí. – skaeff

3

Tx (LINQ to Logs and Traces) es una biblioteca de C# que puede analizar archivos de BLG.

Y ese es el uso:

var playback = new Playback(); 

playback.AddPerfCounterTraces(@"C:\bin\Release\Net40\BasicPerfCounters.blg"); 

playback 
    .GetObservable<PerformanceSample>() 
    .Dump(); 

playback.Run(); 

También puede encontrar ejemplos de cómo usarlo en muestras de Tx para LINQPad:

Tx's LINQpad samples

Cuestiones relacionadas