У меня есть служба Windows, которая запускает реализации платформы в нескольких потоках. У каждого запущенного экземпляра есть несколько общих черт, которые мне нужно отслеживать, например, количество обработанных элементов, время последней обработки элемента и т. Д. Помимо этих базовых данных мониторинга, я хотел бы предложить функциональность в инфраструктура, позволяющая реализациям динамически добавлять свои собственные данные мониторинга.
Я работал с PerformanceCounters и раньше, и, хотя они предлагают достойную функциональность, я нахожу код для их создания и обслуживания довольно громоздким, а также загруженным с возможностью ошибок, связанных с экземплярами (т. Е. кодирование имени экземпляра счетчика, имени категории и типа счетчика). Кроме того, я не уверен, что мог бы предложить простую базовую функциональность для создания динамических счетчиков без написания огромного количества кода.
Кто-нибудь реализовал что-то подобное с помощью PerformanceCounters? Если это так, вы бы порекомендовали это? Если нет, есть ли у кого-нибудь предложение для среды, чтобы я мог легко записать данные мониторинга производительности / работоспособности, чтобы это не привело к 1) значительному замедлению и 2) еще одной точке отказа?
Спасибо, и я рад добавить разъяснения, если это необходимо, поскольку я знаю, что это несколько туманно.
Вывод:
В итоге я реализовал счетчики производительности. Это было что-то вроде PITA (хех), но мой начальник был действительно в идее, и теперь, когда я понял это, это не так уж плохо. Я надеялся на что-то более легко конфигурируемое с более простым способом представления иерархических данных. Но это прекрасно работает, и с встроенным интерфейсом сложно поспорить.