C# WMI、性能计数器和 SNMP 哦,天哪!

Posted

技术标签:

【中文标题】C# WMI、性能计数器和 SNMP 哦,天哪!【英文标题】:C# WMI, Performance Counters, & SNMP Oh My! 【发布时间】:2010-06-10 14:31:47 【问题描述】:

我有一个 C# windows 服务,它监听 MSMQ 并将每条消息作为电子邮件发送出去。

由于没有 UI,我想提供一种功能来监控此服务以查看诸如 # 队列中的消息、# 发送的电子邮件(可能按消息类型)、# 错误等。

实现此目的的最佳/推荐方法是什么?是 WMI 还是性能计数器?这些数据是使用 PerfMon 还是 WMI CIM Studio 查看的?是否有任何方法允许实时监控服务并提供历史分析?

我可以自己深入研究细节,但希望得到一些广泛的指导来帮助揭开这个主题的神秘面纱。

【问题讨论】:

【参考方案1】:

我有时会对我的 Windows 服务实施性能监控。我做什么我保留我感兴趣的事物的内部计数器,并为外部程序访问它创建一种方式。它可以是托管在 Windows 服务中的 WCF 服务,该服务相当容易实现,并且可以通过各种渠道访问。这个WCF服务的客户端也很容易搞定。

另一种方法是创建您自己的 Windows 性能计数器,事件查看器应用程序可以读取这些计数器。

在任何一种情况下,您都需要跟踪服务中发生的事情并将其暴露给外部。在您的情况下,您需要计算 MSMQ 大小、发送的电子邮件、收到的错误并测量收集这些信息的时间。应该很容易。然后去 WCF 服务或自定义性能计数器。使用此msdn article 了解如何创建自定义计数器。希望这会有所帮助。

【讨论】:

以上是关于C# WMI、性能计数器和 SNMP 哦,天哪!的主要内容,如果未能解决你的问题,请参考以下文章

使用刷新对象收集 wmi 性能计数器

WMI 性能计数器查询问题

WMI 查询 - 2008 性能计数器警报

通过 WMI 监控 SQL Server 上每秒的批处理请求

Phonegap 构建错误:哦,天哪。您的构建失败

我在这 1 行代码中的语法有啥问题(指针、引用和取消引用哦,天哪)?