首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

插件式的监控兑现

2012-07-04 
插件式的监控实现结合本周分享的《comsat 监控使用》,和以前听过的《comsat插件开发》,总结一下。一.comsat 是

插件式的监控实现

结合本周分享的《comsat 监控使用》,和以前听过的《comsat插件开发》,总结一下。

一.comsat 是什么?

? comsat 是基于FLEX 和 J2EE开发的监控系统,能够承接系统监控和应用监控的需求,对于系统监控,主要监控内存使用,JVM状态,cpu使用率等,系统监控侵入性较小,而对于应用监控,可以监控你自定义的一些key-value值,根据log打点来监控线程启动状况,通过覆盖log4j的expetionApender来监控异常等,以及通过AOP的方式,监控一些数据库连接异常等。同样,也可以很方便的开发自己的插件。

?

二.特性。

目前实现:

1.添加新的应用,需要comsat服务端配置,客户端web.xml配置监听器,并在本地classpath下配置comsat.xml(配置对应到comsat服务端的应用名称、协议和开放的端口名称)。

2.提供了基础的key-value监控,runtime监控,客户端需要加入plugin、collector等依赖等才能实现。

3.key-value监控需要依赖于日志的<CC>开头的纪录进行获取。

4.可以发送手机报警和旺旺等报警,并进行报警规则的设定。

?

----

不足

?

1.发送的exception信息较多,但是可以显示的统计信息不多。

2.客户端启动任务监听,启动task,对客户端性能有影响。

?

三.目前我们主要应用场景

1.监控系统运行情况

2.通过AOP方式监控数据库运行情况,在数据库断开时,不进行重试。

?

四.结合日志分析运行情况

?

启动客户端时,日志如下:

?

?
插件式的监控兑现
?

1.启动本地配置,本地没有comsat配置则启动服务端配置,采用w3c解析xml如下:

?

?

?这部分是采用了static的方法,是最先被初始化的

2. web.xml中配置的监听的servlet 容器的ComsatListener 启动

?

public class DataAccessAspect {    public Object monitorDataAccess(ProceedingJoinPoint joinPoint) throws Throwable{        try{            return joinPoint.proceed(joinPoint.getArgs());        }catch(DataAccessException err){            try {                DataAccessFailMonitor task = new DataAccessFailMonitor();                List<KVItem> items = task.getKVItems(err);                Date collectTime = new Date();                for (KVItem item : items) {                    item.setCollectTime(collectTime);                    task.send(item);                }            } catch (Exception e) {            }                        throw err;        }catch(Exception err){            throw err;        }    }}

?

这样可以实现在数据库发生DataAceess异常时,保证能够收到异常的报警。

?

六.插件开发

其实上面的应用部分已经基本展示了插件开发的过程,只是没有在数据格式上扩展,数据格式扩展可以通过继承monitor_item去做,并且可以扩展DAO,将你要监控的数据纪录到监控端。总结起来就是四步

1.扩展数据格式,继承monitorItem

2.定义信息收集器

3.定义发送task,

4.可以初始化的监控端(如果你需要)继承MonitorPersistor

热点排行