GlassFishの監視JMXを取得してみた - その1
いくつかのシステムをGlassFishで運用しているんだけど、障害があった時とか、アクセスと負荷の相関とかを統計出来るように、監視オプションを有効にしてみた。
単に、それだけだと、管理コンソールでリアルタイムに現在のステータスがわかるだけで嬉しくないので、定点的にJMX経由で取得してDBとかに突っ込んでグラフ化して見ることに。
手始めにJRubyでJMX経由で値を取得。やり方は下記の通り。
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の方が都合が良い気がしてきたので、ちょっとあとで書き直すかな。