JMX Monitoring

Riak exposes monitoring data via JMX. To enable JMX monitoring, edit the app.config associated with your Riak installation and set the enabled property of the riak_jmx section to true as shown below. The TCP port on which the JMX provider listens is also configurable in this section (the default JMX port is 41110).

    {riak_jmx, [
        {enabled, true},
        {port, 41110}

To view JMX data—assuming that you have the Sun JDK installed—launch JConsole as follows:

$ jconsole <hostname_to_monitor>:<jmx_port>

Once connected, click on the MBeans tab, expand the com.basho.riak tree view, and select Attributes. The attributes listed in the table below will be displayed.

Riak JMX has been tested with the Sun JRE 1.6.0_12 and 1.6.0_20. Some older/non-Sun JREs do not work (e.g. the default java-gcj JRE installed on Debian lenny). If you have problems with JMX or see the message below, please try upgrading to the Sun JRE:

   =INFO REPORT==== 9-Jun-2010::08:14:57 ===
   JMX server monitor <pid> exited with code <non-zero>.

Exported JMX Attributes

Attribute Type Description
CPUNProcs int Number of running processes
CpuAvg1 int 1 minute load average
CpuAvg5 int 5 minute load average
CpuAvg15 int 15 minute load average
NodeGetFsmTime95 float 95th percentile GET time (microseconds)
NodeGetFsmTime99 float 99th percentile GET time (microseconds)
NodeGetFsmTimeMax float Maximum GET time (microseconds)
NodeGetFsmTimeMean float Mean GET time (microseconds)
NodeGetFsmTimeMedian float Median GET time (microseconds)
NodeGets int Number of GETs in past minute
NodeGetsTotal int Number of GETs since node start
NodeName string Node name
NodePutFsmTime95 float 95th percentile PUT time (microseconds)
NodePutFsmTime99 float 99th percentile PUT time (microseconds)
NodePutFsmTimeMax float Maximum PUT time (microseconds)
NodePutFsmTimeMean float Mean PUT time (microseconds)
NodePutFsmTimeMedian float Median PUT time (microseconds)
NodePuts int Number of PUTs in past minute
NodePutsTotal int Number of PUTs since node start
PBCActive int Number of active Protocol Buffers connections
PBCConnects int Number of Protocol Buffers connections in past minute
PBCConnectsTotal int Number of Protocol Buffers connections since node start
RingCreationSize int Number of partitions in Riak ring
VnodeGets int Number of vnode-level GETs in past minute
VnodeGetsTotal int Number of vnode-level GETs since node start
VnodePuts int Number of vnode-level PUTs in past minute
VnodePutsTotal int Number of vnode-level PUTs since node start