I use this tool for collecting performance metrics from HBase to Graphite, via StatsD.
It works by polling HBase's web API for JMX data, extracts interesting values, and sends them to StatsD.
Configuration is done via client.cfg.
Copy and customize client.cfg.example.
Install the statsd pip package.
Invoke main.py, like:
python main.pyAssuming cluster name (defined in client.cfg) "CLUSTERNAME"
Master servers
Assuming table "TABLENAME" and region "REGIONNAME"
CLUSTERNAME.tables.TABLENAME.regioncountCLUSTERNAME.tables.TABLENAME.REGIONNAME.readRateCLUSTERNAME.tables.TABLENAME.REGIONNAME.writeRate
Region servers
Assuming server name (defaults to server FQDN with . replaced to -) "SERVERNAME"
CLUSTERNAME.SERVERNAME.compactionQueueSizeCLUSTERNAME.SERVERNAME.flushQueueSizeCLUSTERNAME.SERVERNAME.readReqeustsCountCLUSTERNAME.SERVERNAME.regionCountCLUSTERNAME.SERVERNAME.running-tasksCLUSTERNAME.SERVERNAME.readRateCLUSTERNAME.SERVERNAME.writeRate
Because I'm using StatsD, the metric CLUSTERNAME.SERVERNAME.compactionQueueSize can be found as stats.gauges.hbase.CLUSTERNAME.SERVERNAME.compactionQueueSize.