Для PerformanceCounter или для записи пользовательского мониторинга? - PullRequest
4 голосов
/ 13 января 2009

У меня есть служба Windows, которая запускает реализации платформы в нескольких потоках. У каждого запущенного экземпляра есть несколько общих черт, которые мне нужно отслеживать, например, количество обработанных элементов, время последней обработки элемента и т. Д. Помимо этих базовых данных мониторинга, я хотел бы предложить функциональность в инфраструктура, позволяющая реализациям динамически добавлять свои собственные данные мониторинга.

Я работал с PerformanceCounters и раньше, и, хотя они предлагают достойную функциональность, я нахожу код для их создания и обслуживания довольно громоздким, а также загруженным с возможностью ошибок, связанных с экземплярами (т. Е. кодирование имени экземпляра счетчика, имени категории и типа счетчика). Кроме того, я не уверен, что мог бы предложить простую базовую функциональность для создания динамических счетчиков без написания огромного количества кода.

Кто-нибудь реализовал что-то подобное с помощью PerformanceCounters? Если это так, вы бы порекомендовали это? Если нет, есть ли у кого-нибудь предложение для среды, чтобы я мог легко записать данные мониторинга производительности / работоспособности, чтобы это не привело к 1) значительному замедлению и 2) еще одной точке отказа?

Спасибо, и я рад добавить разъяснения, если это необходимо, поскольку я знаю, что это несколько туманно.

Вывод:

В итоге я реализовал счетчики производительности. Это было что-то вроде PITA (хех), но мой начальник был действительно в идее, и теперь, когда я понял это, это не так уж плохо. Я надеялся на что-то более легко конфигурируемое с более простым способом представления иерархических данных. Но это прекрасно работает, и с встроенным интерфейсом сложно поспорить.

Ответы [ 2 ]

1 голос
/ 13 января 2009

Согласен, создание кода, использующего счетчики производительности, может занять некоторое время. Однако, в прошлый раз, когда я сделал это, я обернул все это в хороший класс многократного использования. Мне стало намного проще использовать счетчики перфектов в коде с минимальным трением.

Конечный результат того стоил мне, учитывая инструмент, который существует на вершине счетчиков perf (perfmon - большая находка).

0 голосов
/ 22 января 2009

Рассматривали ли вы использование классов инструментовки из Enterprise Library? Ничего не могу сказать про / против EntLib, но, похоже, он набирает популярность, и Microsoft, похоже, продолжает вкладывать в него средства ...

http://msdn.microsoft.com/en-us/library/dd203352.aspx

...