Can Jconsole Data Be Retrieved From The Command Line?


Answer :

jconsole just provides a wrapper around the JMX MBeans that are in the platform MBeanServer.

You can write a program to connect to your VM using the Attach API which would then query the MBeans.

Or you can expose the platform MBeanServer over RMI and query the MBeans that way.

See the java.lang.management package for more info


Maybe jvmtop is worth a look.
It's a command-line tool which provides a live-view for several metrics.

Example output of the VM overview mode:

 JvmTop 0.4.1  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12  http://code.google.com/p/jvmtop    PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL  3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21 11272 ver.resin.Resin [ERROR: Could not attach to VM] 27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31 19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20 16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46 

Take a look at jmap, which can be used to take a heap dump from the console.

For data not covered in the heap dump, I believe jconsole just uses JMX to connect to the running JVM to get statistics - so it's likely possible to create your own application which could pull those same types of stats from JMX.


Comments

Popular posts from this blog

Converting A String To Int In Groovy

"Cannot Create Cache Directory /home//.composer/cache/repo/https---packagist.org/, Or Directory Is Not Writable. Proceeding Without Cache"

Android How Can I Convert A String To A Editable