Announcing Scalable Performance Monitoring (SPM) for JVM
August 7, 2012 2 Comments
Up until now, SPM existed in several flavors for monitoring Solr, HBase, ElasticSearch, and Sensei. Besides metrics specific to a particular system type, all these SPM flavors also monitor OS and JVM statistics. But what if you want to monitor any Java application? Say your custom Java application run either in some container, application server, or from a command line? You don’t really want to be forced to look at blank graphs that are really meant for stats from one of the above mentioned systems. This was one of our own itches, and we figured we were not the only ones craving to scratch that itch, so we put together a flavor of SPM for monitoring just the JVM and (Operating) System metrics.
Now SPM lets you monitor OS and JVM performance metrics of any Java process through the following 5 reports, along with all other SPM functionality like integrated Alerts, email Subscriptions, etc. If you are one of many existing SPM users these graphs should look very familiar.
JVM: heap, thread stats
We are not including it here, but the JVM report includes and additional and valuable Garbage Collection graph if you are using Java 7.
Garbage Collection: collection time & count
CPU & Memory: CPU stats breakdown, system load, memory stats breakdown, swap
Disk: I/O rates, disk space used & free
Network: I/O rates
To start monitoring, one should have a valid Sematext Apps account, which you can get free of charge here. After that, define a new SPM JVM System, download the installation package, and proceed with the installation. The whole process should take around 10 minutes (assuming you are not multitasking or suffer from ADD, that is).
Installation process is simple as always and described on the installer download page. After the installation is done, monitor is enabled in your Java process by adding just the following to the command line for the Java process/application you want to monitor:
-Dcom.sun.management.jmxremote \ -javaagent:/spm/spm-monitor/lib/spm-monitor-jvm-1.6.0-withdeps.jar=/spm/spm-monitor/conf/spm-monitor-config-YourSystemTokenHere-default.xml
For example, if my application is com.sematext.Snoopy I could run it with SPM parameters as shown here:
java -Dcom.sun.management.jmxremote -javaagent:/spm/spm-monitor/lib/spm-monitor-jvm-1.6.0-withdeps.jar=/spm/spm-monitor/conf/spm-monitor-config-YourSystemTokenHere-default.xml com.sematext.Snoopy
After you are finished with the installation, the stats should start to appear in SPM after just a few minutes.