GlassFishの監視JMXを取得してみた - その2
その1でGlassFishのリソースをJRuby使ってJMX経由を取得するサンプルを書いたので、
それを元にmongodbに放り込むスクリプトを作ってみた。
https://github.com/koduki/glassfish_monitor
まだ、エラーハンドリングとか全然書いてないけど、とりあえずは動くものとしてはOKのはず。
ちなみにmongoidをスクリプトから使うサンプルは下記の通り。
require 'mongoid' Mongoid.configure do |config| config.connect_to("test") end SystemEnviroment.new(mon.get_system_enviroments).save
どうもmongoid 3.0から仕様が変わったらしく、configの部分がネットの記事だと基本古くて動かなかったので、一応サンプルとして載っけとく。
あとは、これをcronで仕込むだけかなー。jrubyの起動に数秒かかるのが難点だけど、
そもそも1秒に1回とかデータ取り込むと量が膨大になるので、取り急ぎのサンプリング数は20秒に1回くらいを想定。この辺の数値は運用しながらいじってくのが一番かな?
ちなみにjrubyなので、他のruby環境が入ってる時はrvmを使うと便利。下記のようなコマンドで任意のバージョンで実行できるとかrvmは素敵ですね!
rvm jruby-head exec ruby run.rb
それではHappy Hacking!