GlassFishの監視JMXを取得してみた - その1

いくつかのシステムをGlassFishで運用しているんだけど、障害があった時とか、アクセスと負荷の相関とかを統計出来るように、監視オプションを有効にしてみた。

単に、それだけだと、管理コンソールでリアルタイムに現在のステータスがわかるだけで嬉しくないので、定点的にJMX経由で取得してDBとかに突っ込んでグラフ化して見ることに。

 

手始めにJRubyJMX経由で値を取得。やり方は下記の通り。

require 'jmx4r'

url = 'service:jmx:rmi://localhost.localdomain:8686/jndi/rmi://localhost.localdomain:8686/jmxrmi'
con = JMX::MBean.establish_connection :url => url

runtime = JMX::MBean.find_by_name "java.lang:type=Runtime"
runtime.vm_name
runtime.spec_version
runtime.vm_version
runtime.boot_class_path
runtime.class_path
runtime.library_path

一応、必要そうな項目を全部書いたのはgistに置いて有ります。あとはこれをぐるぐる回すだけなんだけど、Javaの運用環境であることを考慮するとGroovyの方が都合が良い気がしてきたので、ちょっとあとで書き直すかな。