虚無僧は JMX に準拠したサーバを定期的に監視して CSV 形式で出力するツールです。
本体のソースコードはたった150行でできていて、ヒープサイズは 10MB で動作します。
先日暫定公開したものから大幅にリファクタリングを加え、ドキュメントもそれなりにしっかり書いたつもりです。
暫定公開からの変更点は
・マトモな html ドキュメントを書いた
・Tomcat のモニタリングが出来なかったのを修正
・MBeanDoc の追加
MBeanDoc のサンプルはこちら。
設定ファイルが簡単に作れます。
・CSV 出力を logback に任せることでローテション等柔軟にできるようになった
・複数の MBean サーバを監視できるようになった
・BSD 準拠のライセンスにした
一部パラメータの名前やフォーマットが変わっているので先日の虚無僧2.0用の設定ファイルは使えません。
従来、本体はシンプルなものの設定ファイルを記述するには監視したい MBean の ObjectName や属性名を一生懸命かき集めなければならず面倒でした。
今回 MBeanDoc を追加したことで、ブラウザを使ってポチポチと劇的に簡単に監視したい MBean 属性を選択できるようになりました。
追記(5/25):
MBeanDoc で ObjectName が一つ分しか表示されないという致命的なバグを修正しました。
とりあえずバージョン2.0.1として差し替え済みです。
リファクタリングしているうちに織り込んでしまったバグのようです。
シンプルなコードとはいえユニットテストが全くない恥ずかしい状態です。
Velocity を使ったコードのテストユニットってどう書くのがいいのかしら?
出力そのものを検証するよりも VelocityContext に必要なオブジェクトが必要な数だけ積まれているかを確認するのが簡単でいいかな?
追記(5/25):
mbeandoc.cmd/sh がアーカイブに含まれていなかったのを修正。
関連エントリ:
・虚無僧2.0.3 リリース
・JConsole で JBoss の MBean を監視
・@IT – Webアプリの問題点を「見える化」する7つ道具
・虚無僧2.0
・JMX Remote を使って WebLogic Server 9.x の MBean にアクセス