监控一个应用可以有很多好处,xxxxx 这里就不说了
不同应用的监控的出发点肯定不同,有些事为了看应用性能,有些为了监视外部系统,有些为了数据打点做数据分析等等。
因为出发点不同,应用不同,所以监控的数据结构肯定也不同,如果有一个通用的易扩展的又使可以自管理的监控应用,可以监控所有应用,满足各类需求,那是不是很好呢。
我想到的通用,最好就是不定义死数据结构,让应用负责人自己去定义,且数据采集的和数据消费的方式可以自定义,那就是无限扩展拉(可能我想得太简单了,欢迎拍砖!)。
于是我简单实践了下,写了一个监控的客户端,如下:[url]http://code.google.com/p/dragonfly-client/wiki/Guides[/url] 可以通过svn获取。
该客户端使用jmx管理监控本身的生命周期,使用log方式采集监控数据放入缓存中,通过定时器调度消费者消费数据。
这里log如何收集数据和消费者都提供扩展,包括缓存数据的方式,都可以扩展。
[img]http://dl.iteye.com/upload/attachment/590689/a403c575-ca97-30ff-82ac-73394f54f020.jpg[/img]
以后可以考虑把客户端注册到监控服务端,把数据发送到服务端,服务端通过定制化的数据展现插件,渲染监控数据报表。
甚至缓存可以扩展到redis,memcached等分布式缓存中保存,数据可以远程分发到,NOSQL 数据库或者hadoop等分布式数据库中, 用于数据分析和挖掘。
监控真是重要啊~ 有了监控,晚上可以安心睡觉拉~
项目还在开发中,欢迎有新需求,更欢迎对代码和设计上有任何建议~~
不同应用的监控的出发点肯定不同,有些事为了看应用性能,有些为了监视外部系统,有些为了数据打点做数据分析等等。
因为出发点不同,应用不同,所以监控的数据结构肯定也不同,如果有一个通用的易扩展的又使可以自管理的监控应用,可以监控所有应用,满足各类需求,那是不是很好呢。
我想到的通用,最好就是不定义死数据结构,让应用负责人自己去定义,且数据采集的和数据消费的方式可以自定义,那就是无限扩展拉(可能我想得太简单了,欢迎拍砖!)。
于是我简单实践了下,写了一个监控的客户端,如下:[url]http://code.google.com/p/dragonfly-client/wiki/Guides[/url] 可以通过svn获取。
该客户端使用jmx管理监控本身的生命周期,使用log方式采集监控数据放入缓存中,通过定时器调度消费者消费数据。
这里log如何收集数据和消费者都提供扩展,包括缓存数据的方式,都可以扩展。
[img]http://dl.iteye.com/upload/attachment/590689/a403c575-ca97-30ff-82ac-73394f54f020.jpg[/img]
以后可以考虑把客户端注册到监控服务端,把数据发送到服务端,服务端通过定制化的数据展现插件,渲染监控数据报表。
甚至缓存可以扩展到redis,memcached等分布式缓存中保存,数据可以远程分发到,NOSQL 数据库或者hadoop等分布式数据库中, 用于数据分析和挖掘。
监控真是重要啊~ 有了监控,晚上可以安心睡觉拉~
项目还在开发中,欢迎有新需求,更欢迎对代码和设计上有任何建议~~