Skip to content
Poll JMX attributes from the command line
Java Shell
Branch: master
Clone or download
Pull request Compare This branch is 6 commits ahead, 5 commits behind jonjlee:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts
src/main/java/net/jlee/jmxstat
.gitignore
CHANGES.txt
LICENSE
Makefile
README.md
TODO.txt
pom.xml

README.md

NAME

jmxstat - Poll JMX attributes and more

SYNOPSIS

jmxstat <host:port> [--peformGC|--contention|--disable-contention] [mbean.name[attribute.field], ...] [interval [count]] 
or 
java -jar jmxstat-VERSION.jar <host:port> [--peformGC|--contention|--disable-contention] [mbean.name[attribute.field], ...] [interval [count]]

DESCRIPTION

jmxstat connects to a remote JMX server via RMI and reads MBean attributes
at a regular interval. Authentication is not supported.

jmxstat supports these arguments:

host:port            Host and port of the JMX enabled process to connect to

mbean-attributes     Space separated list of mbean names and attributes to
                     query in the following format:

                        mbeanDomain:mbeanKey=mbeanValues,...[mbeanAttribute1[.field],...]
                     
                     If the attribute starts with '!' invoke the method.

--contention         Render blockedCount and blockedTime for all threads.
                     blockedCount is the total number of times threads
		 blocked to enter or reenter a monitor.
		 blockedTime is the time elapsed in milliseconds for
		 all threads blocked to enter or reenter a monitor.

--disable-contention Disable the blocked time monitoring activated by the 
                     --contention options.

--performGC          Perform a full GC.

interval             Pause _interval_ seconds between each query.

count                Select count records at interval second intervals.

EXAMPLES

**Precondition**. These examples assume a JMX enabled process is listening
on localhost:9999. To use jmxstat itself as the monitored process:

    java -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authentice=false -Dcom.sun.management.jmxremote.ssl=false -jar jmxstat.jar localhost:9999

Display the number of loaded classes (every 5 seconds, by default):

    jmxstat localhost:9999 java.lang:type=ClassLoading[LoadedClassCount]

Display heap usage and thread count every 2 seconds 3 times:

    jmxstat localhost:9999 java.lang:type=Memory[HeapMemoryUsage.max,HeapMemoryUsage.committed,HeapMemoryUsage.used] java.lang:type=Threading[ThreadCount] 2 3

Display thread count and contention information:

   	jmxstat localhost:9999 --contention java.lang:type=Threading[ThreadCount] 2 3

Perform a Full garbage collector:

    jmxstat localhost:9999 --performGC

Same but using a method invocation:

    jmxstat localhost:1089  java.lang:type=Memory[!gc] 1 1

Invoking method with parameters:

    jmxstat localhost:1089  localhost:1089  org.nuxeo:name=EventMonitoring,type=service[!setListenerEnabledFlag/auditLoggerListener/false] 1 1

INSTALL/DOWNLOAD

Get the latest package from: 

https://github.com/bdelbosc/jmxstat/downloads

Then install:
   tar xzvf jmxstat-VERSION.tgz
   cd jmxstat-VERSION
   sudo make install
You can’t perform that action at this time.