Существует ли какая-либо платформа или код C # для анализа файлов журналов Perfomance Counter * blg? - PullRequest
5 голосов
/ 09 декабря 2010

Задача состоит не в сборе данных счетчиков производительности в моем приложении .NET, а в открытии уже подготовленных двоичных файлов журналов (* .blg)?

Я знаю, что MS SQL Profiler (приложение .NET) может анализироватьдвоичные журналы.

Ответы [ 2 ]

7 голосов
/ 09 декабря 2010

Из того, что я могу найти, кажется, что формат файла .blg является проприетарным и спецификация не публикуется открыто.Тем не менее, я не думаю, что вы сможете найти фреймворк или библиотеку, которая выполняет сырой анализ этого формата.Написание библиотеки для синтаксического анализа этого формата без спецификации не без риска, так как предположения, вероятно, придется сделать ... даже если вам придется провести реверс-инжиниринг двоичного формата, всегда есть вероятность, что вы пропустите определенные правила в реализации вашего синтаксического анализатора, что приведет кпотенциальные проблемы в будущем.

Тем не менее, я могу подумать о двух других вариантах анализа двоичных файлов журналов для использования в приложении .NET.

  1. PowerShell's * 1007Командлет * Import-Counter может использоваться для импорта данных счетчика из файла blg, в результате чего создаются объекты для каждого образца счетчика в источнике.Полученный результат можно использовать несколькими способами.Самым простым примером, который я могу придумать, будет преобразование вашего источника в формат CSV для дальнейшей обработки:

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

  2. relog - еще один вариант.Это утилита командной строки, которая поставляется с большинством основных версий ОС Windows.Опять же, подход здесь заключается в том, чтобы преобразовать файл blg в формат CSV для облегчения анализа.Пример:

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

С учетом указанных выше вариантов вы сможете перейти оттуда.Было бы довольно просто запустить powershell или сделать relog из программы на C #, используя Process.Start ()

3 голосов
/ 29 сентября 2015

Tx (LINQ to Logs and Traces) - это библиотека C #, которая может анализировать файлы blg.

И это использование:

var playback = new Playback();

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

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

playback.Run();

также найдите примеры, как использовать его в примерах Tx для LINQpad:

Tx's LINQpad samples

...