C # WMI, счетчики производительности и SNMP Oh My! - PullRequest
4 голосов
/ 10 июня 2010

У меня есть служба Windows C #, которая прослушивает MSMQ и отправляет каждое сообщение в виде электронного письма.

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

Каков наилучший / рекомендуемый способ сделать это? Это WMI или счетчики производительности? Эти данные просматриваются с помощью PerfMon или WMI CIM Studio? Позволяет ли какой-либо подход контролировать сервис в режиме реального времени, а также предоставлять исторический анализ?

Я могу разобраться в деталях сам, но был бы признателен за некоторые общие рекомендации, чтобы помочь демистифицировать эту тему.

1 Ответ

2 голосов
/ 23 июля 2010

Я иногда реализую мониторинг производительности моих служб Windows. Что я делаю, я храню внутренние счетчики интересующих меня вещей и создаю для внешней программы способ доступа к ней. Это может быть служба WCF, размещенная внутри службы Windows, которая довольно проста в реализации и доступна по различным каналам. Клиент этой службы WCF также довольно прост.

Другой способ - создать собственные счетчики производительности Windows, которые могут быть прочитаны приложением просмотра событий.

В любом случае вам нужно следить за тем, что происходит в вашем сервисе, и подвергать его воздействию извне. В вашем случае вам необходимо вести учет размера MSMQ, отправленных электронных писем, полученных ошибок и измерять время их сбора. Должно быть легко. Затем перейдите на службу WCF или пользовательские счетчики производительности. Используйте эту статью MSDN о том, как создать собственный счетчик. Надеюсь, это поможет.

...