play java のモニタリングをしたくて、ぱっと組み合わせてできたもの。
何もないよりはマシというレベルで、zabbixで監視する余裕がないとか客先の環境に手軽にさっといれたいとか、そういう状況向け。
Jolokiaとhawtioを組み合わせます。(どちらももっと適した使い方がある気がしてならない・・・)
Jolokiaの設定
agentのダウンロード
公式サイトより、jolokia-jvm-x.x.x-agent.jarを入手。
https://jolokia.org/download.html
playの起動スクリプトにjavaagentの設定追加
playのビルドで作られたアプリのスクリプトの中に、オプションの渡し方についてのコメントが下記のようにあります。
# jvm options and output control
JAVA_OPTS environment variable, if unset uses "$java_opts"
-Dkey=val pass -Dkey=val directly to the java runtime
-J-X pass option -X directly to the java runtime
(-J is stripped)
-J
をつけて渡すと、それを除いたのがjavaコマンドの引数として渡せるようです。
jmxのポートとホストをjolokiaのagentに設定したものを、下記のようにして渡す。
JOLOKIA="-J-javaagent:${AGENT_PATH}/jolokia-jvm-x.x.x-agent.jar=port=3333,host=localhost"
./bin/[APP_NAME] $JOLOKIA
hawtioの設定
hawtio-appをダウンロード
公式サイトより、hawtio-app-x.x.x.jarをダウンロード。
http://hawt.io/getstarted/index.html
hawtioの起動
下記でポート番号を指定しての起動になる。
java -jar hawtio-app-x.x.x.jar --port 8888
http://localhost:8888/hawtio からアクセス可能
監視対象の接続
playに設定したjolokiaをhawtioから接続。Connect>Remoteから、接続の設定を追加。
閲覧
Containerに、上で設定した接続先名があるので、そこから辿れる。
DashBoadに、Heapメモリの使用率などのグラフが表示される。jvisualvmと同程度の情報を見られる模様。
まとめ
とりあえず何かしらを見るにはいいが、リアルタイムの変化しか見られない…
これならjvisualvmの方が手っ取り早い気もする。