2012年8月25日土曜日

visualVMのアドオン実装

一昔前はライブラつかって
『ねんがんのオニオンソードをてにいれたぞ!』
が実行できた。
今はvisualVMつかってcpu使用率やheap量とか取得できる。

ただしグラフで表示されたりするだけで、正確な数字をログにして記録したりしようと思ったら、
独自にアドオンを開発しなきゃいけない。

開発環境の構築や取っ掛かりはIT Proに任せるとして、詰まったところをメモ書き程度に書いておく。

//まず前提から、こんな感じで書くと、jvmの現在のステータスがわかる
MonitoredDataオブジェクトを取得できる。


        MonitoredDataListener monitoredDataListener = new MonitoredDataListener() {
            @Override
            public void monitoredDataEvent(final MonitoredData data) {
                final long time = System.currentTimeMillis();
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        //ここに書く命令が、一定秒数ごとに実行される
                        hogehoge(data, time)
                    }
                });
            }
        };


//jvmの稼働時間
data.getUpTime()
//cpu経過時間
data.getProcessCpuTime()
//javaマシンの情報を取得したり
Jvm jvm = JvmFactory.getJVMFor(application);
//cpuモニターサポート状況取得方法(boolean)
jvm.isCpuMonitoringSupported();
//javaマシンのプロセッサ数取得(int)
JvmMXBeansFactory.getJvmMXBeans(JmxModelFactory.getJmxModelFor( application ))
              .getOperatingSystemMXBean().getAvailableProcessors();

上記のメソッド組み合わせて、cpu使用率とか取れたりする。メモリはもっと簡単
//最大ヒープサイズ
data.getGenCapacity()[0];
//使用ヒープサイズ
data.getGenUsed()[0];
//最大メモリサイズ
data.getGenMaxCapacity()[0];



そろそろタグ管理したほうがいいかな、、、、

0 件のコメント:

コメントを投稿