如何有效监控.NET 应用程序

当你的.NET应用出现性能问题的时候能很快得找到问题的症结吗? 这是一个运营的企业应用所必需考虑的问题,最近工作中碰到很多这方面的问题,运行中的系统完全是一个黑盒子,不象开发中的产品可以通过代码跟踪去Debug出问题来,运行的系统一个非常重要的方面能够被监控,没有运行维护体系支持的.NET应用,就会脆弱得像入冬后树枝上最后一片叶子,最近一直被这个问题所困扰,公司内有几百个.NET系统,想对他实施监控竟然毫无对策。各位同学在你们的项目/产品中考虑到这个问题了吗,一般怎么处理,欢迎各位交流,讨论。

  WMI(Windows管理规范:Windows Management Instrumentation)是Microsoft基于Web的企业管理(WBEM)的实现,同时也是一种基于标准的系统管理接口。Windows系统层面的监控几乎基于WMI机制,而与这个机制切合最好的恐怕非MOM(Microsoft Operations Manager )莫属;无论是学习还是实际应用,事实上Enterprise Library特别是4.0版本已经成为众多.NET应用,尤其是大型应用的样板,Instrument作为Common Block的主要组成,可以说是为整个Enterprise Library内置的,它的外围是性能监控器和WMI;

   微软Patterns && Practices社区一直在关注.NET监控和性能调整,Improving .NET Application Performance and Scalability,Monitoring in .NET Distributed Application Design。这些都是文档,打印出来都是一本本厚厚的书。给人一个“半生不熟”的感觉,对于很多企业而言几乎没有多少技术力量可以把这些内容串起来。

   象Enterprise Library 可以通过WMI来发现和查询,如何让WMI来发现呢,让WMI能够查询到你的那个类?那就需要自己提供WMI Provider,这个东西在.NET 平台下(.NET 2上有 WMI 2,也就是Enterprise Library 4所支持)非常的简单了。

  WMI的一些中文资料我也整理了一些Windows管理规范- WMI,在CodeProject上有一篇 A simple guide to WMI providers ,认真研究一下Enterprise Library 4的有关系统监视Instrumentation的东西。

   ASP.NET 2.0已经有了一个ASP.NET 运行状况监视,参见 http://msdn.microsoft.com/zh-cn/library/ms178701(VS.80).aspx , 将asp.net 1.1升级到asp.net2.0对于运营来说就是一个非常不错的好处了。

本文来自合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

时间: 2024-09-17 03:15:01

如何有效监控.NET 应用程序的相关文章

谷歌让用户监控 Chrome 应用程序和扩展包

扩展包和应用程序很可能是谷歌Chrome浏览器当中最有用的部分,而该公司正继续努力,以确保该功能不会被滥用.谷歌现在已经可以让用户监控Chrome应用程序和扩展包的行为. 谷歌现在已经为去年推出的独立的Chrome应用程序开发者工具添加一个审查功能, 它使用户能够清楚地看到每一个扩展包如何使用用户的数据. 该公司承认,对此感兴趣的那些"超级用户"才会去使用此项审查功能,一般用户可能根本不会对此留意.不过,这项新功能是谷歌最近旨在清理扩展包的措施之一.谷歌今年早些时候开始封杀那些没有进入

如何监控Java应用程序的Windows内存使用情况

Java 技术最知名的一个优点是:与其他语言如 C 程序员不同,Java 程序员不需要对令 人畏惧的内存分配和释放负责.Java 运行库可以为您管理这些任务.每个实例化的对象都自 动在堆中分配内存,垃圾收集程序定期收回不再使用的对象所占据的内存.但是您还不能完 全撒手不管.您仍然需要监控程序的内存使用情况,因为 Java 进程的内存不仅仅包括堆中 分配的对象.它还包括程序的字节码(JVM 在运行时解释执行的指令).JIT 代码(已经为 目标处理器编译过的代码).任何本机代码和 JVM 使用的一些

Zabbix监控之检测程序日志中错误发生的次数

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1678879 最近开发人员提了一个新的监控需求,当一个日志文件中出现的错误的次数增加时(日志文件中的错误关键字出现数量增加)则触发报警. 我觉得这是一个无聊的问题,问题之所以无聊,是因为该问题本身就具有局限性(自己给自己挖坑).首先,日志文件不可能无穷的增大,因此当日志文件因为人为维护时发生的任何变化必会触发报警:

python重构日志监控脚本的程序代码

先看代码: nginx日志监控脚本Python #!/usr/bin/python2.6 #coding=utf-8 import os import time #日志记录 num_file = '/data/www/www.111cn.net/log/num' log_file = '/data/www/www.111cn.net/log/www.111cn.net.log' #ip屏蔽函数 def shellcmd(ip,con):     os.system('/root/shell/ng

Win7系统中怎么监控QQ程序

  我们如何想要在Win7旗舰版的系统下监控我们的使用的QQ程序呢,有些人会用到第三方软件,其实根本用不着,我们的系统就有自带的监控程序,我们只需要在审核策略这个项目中添加我们监控的QQ程序就可以监控了,想知道的朋友马上来看看吧! 一.首先我们要打开我们的搜索对话框,显示在我们的桌面点击开始菜单,然后看到有一个搜索打开,然后在复制gpedit.msc命令并然后就直接点击确认,或者是直接回车键,就会打开我们的本地组策略编辑器了. 二.然后就会出现我们的组策略编辑器的窗口了,然后我们根据"计算机配置

应用程序运行状态监控

问题描述 应用程序运行状态监控 非常对不起,我没有金币, 我公司服务器上有5个C# 开发的控制台应用程序,非常重要,但是有时候会出现错误导致程序停止如图:这几个程序非常重要,但也不可能天天看着他,现在我想做一个C#开发监控(注:定时截图的监控,不用提了),当出现这个错误时监控能觉察到,望大神给条指示. 让这5个程序定时给监控发心跳包之类的思路不用提了,因为这5个程序里面有一个我没源码,没法改,而且这个没源码的程序还是最重要的, 对于修改源码的基本没戏, 解决方案 自己写个服务定时读取下事件查看器

用VBS调用程序并对程序的运行情况进行监控的两个代码_vbs

有同时要用一个CAE软件调用外部程序,但是,通过这个CAE软件调用外部程序以后,因为这个外部程序有参数,调用方法写在Bat文件里的,由CAE软件来调用这个Bat,所以,CAE软件没办法对调用的程序进行监控,调用的程序还在运行当中,准备工作还没完成,就到了下一流程,所以,造成流程出错,我写了两个VBS代码,通过它来调用就解决了这个问题!两个小程序分别是按不同的方式来监控的!    两个程序的调用方式不一样,一个是对系统进程进行监控,一个是对程序生成的文件特征进行监控! 第一个: '该程序用来配合S

Ganglia监控Hadoop与HBase集群

以下基于上篇Hadoop2.6与HBase1.0集群架构: http://lizhenliang.blog.51cto.com/7876557/1665130 http://lizhenliang.blog.51cto.com/7876557/1661354  Hadoop集群基本部署完成,接下来就需要有一个监控系统,能及时发现性能瓶颈,给故障排除提供有力依据.监控hadoop集群系统好用的比较少,自身感觉ambari比较好用,但不能监控已有的集群环境,挺悲催的.ganglia在网上看到原生支持

找出Java程序内存溢出的元凶

我曾经在刚入行的时候做过一个小的swing程序,用到了java SE,swing,Thread等东东,当初经验少 也没有做过严格的性能测试,布到生产环境用了一段时间后发现那个小程序有时候会抛 java.lang.OutofMemoryError异常,就是java的内存溢出.当时也上网查了不少资料,试过一些办法,代 码也稍微做了些优化,但是有一个问题我始终是找不到解决的方案 - 不知为什么子窗体关闭后java的垃 圾回收机制无法回收其资源,因为这个Java程序可能要经常开关一些子窗体,那么这些子窗