Skip to content
springside edited this page Apr 24, 2012 · 8 revisions

##Overview JMX曾经是一个很吃香的监控/管理协议,那些非Java的应用都要羡慕JavaEE有这样的标准协议。

但随着时间推移,JMX也显示出一定的局限性,首先它的协议只有Java一族的应用自己能懂,不符合现在平台大混合的潮流。 另外它的使用也依赖于有XWindows的机器启动的JConsole或者某些应用服务器提供的,功能有限的Web界面。

这时,像MongoDB提供的JSON格式的Restful监控管理接口,给人感觉更加好用。

幸好,这时候出来一个Jolokia,可以把JMX的MBean Restful JSON 化。

Jolokia

使用超简单,只要将一个Servlet加入web.xml中,然后就可以用一些restful的url来获取属性,设置属性和调用MBean函数了。

见SpringSide showcase 示例,在jmx.jsp里,演示了数种典型的用法:

  • 获取showcase下所有MBean的所有属性: /jolokia/read/showcase:name=*
  • 获取ApplicationStatistics MBean下的所有属性: /jolokia/read/showcase:name=ApplicationStatistics
  • 只获取MBean下的ListUserTimes属性: /jolokia/read/showcase:name=ApplicationStatistics/ListUserTimes
  • 执行执行获取特定Logger的Level的命令:/jolokia/exec/log4j:name=Log4j/getLoggerLevel/org.springside.showcase

返回值看起来是这个样子的,前面部分是关于请求的复述,value部分是返回值:

{"timestamp":1335280389,"status":200,"request":{"mbean":"showcase:name=ApplicationStatistics","type":"read"},
"value":{"UpdateUserTimes":0,"ListUserTimes":0}}
Clone this wiki locally