扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:开发者在线 来源:开发者在线 2007年9月3日
关键字: Zach Smith
您可能需要在软件开发中使用性能计数器(performance counter)提供的信息,比如内存使用量和ASP.NET页面的重新编译信息。
性能计数器为软件开发提供了大量的宝贵信息,但是如何在您自己的软件中有效地利用这些信息是很多软件开发人员面临的问题。Windows操作系统自带了性能计数器程序,但是功能有限,如果有软件工具可以监控性能计数器的数据,并在特定的情况下发送电子邮件作为警报信息,那么将是一件很棒的事情。
例如,我使用的系统利用了微软消息队列(Microsoft Message Queuing)来实现这一功能。比如,我们需要监控信息队列来确保信息流运转正常,每个信息队列都会将当前的信息发布到性能计数器,然后我们使用性能计数器来监控整个队列,如果用人来监控系统的运转,那么在晚上和周末以及无人看管的时候,我们都无法获得系统性能监控的通知服务。
本文讲解了如何设计具备这样功能的监视器工具,利用这个工具,您可以同时监控多个性能计数器,并在某些部分出现故障的时候获得电子邮件的通知。比如,您可以将这个工具配置为性能计数器的读数达到500,并且在两分钟之内没有下降的时候发出警报。
配置
所有的配置信息都是以XML格式存储在Logic.xml文件中,通过修改这个文件,你可以选择监控哪些计数器以及在哪些条件下发送警报。在项目文件包中,已经包含了这个配置文件的一个例子。这个配置文件包含了以下几个主要的部分:
l MonitorEntry — 这个部分设定了需要监控的性能计数器,您需要对监视器工具发出指令来说明如何访问需要监控的计数器。
l Alert — 每个 MonitorEntry都有一个或多个警报(Alerts),警报是这个工具的核心,用来决定是否发送电子邮件信息。
l Constraint — 每个Alert都包含了一个或多个限制条件(constraint),这些限制条件就是用来决定是否发送电子邮件信息的规则。
l Recipients — 每个 Alert都可以发送到不同的电子邮件地址(或多重地址)。
l E-mailSettings — 这个节点设定了监视器工具与电子邮件服务器之间如何交流。
如果读一下Logic.xml的例子(列表A),您会比较容易理解这些配置的含义。
列表A
<?xml version="1.0" encoding="utf-8" ?>
- <Logic>
- <Monitor>
- <MonitorEntry PollTime="10000" CategoryName="MSMQ Queue" CounterName="Messages in Queue" InstanceName="dev-appheartbeat" MachineName="dev-app">
- <Alerts>
- <Alert Title="Alert 1" Message="Messages have been stagnent for two seconds.">
<Constraint Check="LastValue" GreaterThan="0" />
<Constraint Check="UnchangedSeconds" GreaterThan="2" />
- <Recipients>
<Recipient>zs_box@hotmail.com</Recipient>
</Recipients>
</Alert>
- <Alert Title="Alert 2" Message="There are more than 500 messages in the queue!">
<Constraint Check="LastValue" GreaterThan="500" />
- <Recipients>
<Recipient>zs_box@hotmail.com</Recipient>
</Recipients>
</Alert>
</Alerts>
</MonitorEntry>
</Monitor>
- <EmailSettings>
<FromAddress>someone@somedomain.com</FromAddress>
<SMTPServer>127.0.0.1</SMTPServer>
</EmailSettings>
</Logic>
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者