HBase is an open source, non-relational, distributed database. For more information visit http://hbase.apache.org/.
Even if the HBase plugin is not configured, Stackdriver Monitoring will discover HBase services running in your Cloud Platform project by:
- searching instance names for hbase
- checking for ports opened to 60201 via firewall rules
The services discovered are displayed on the HBase Services page in the Resources menu. After you install the monitoring agent and configure the HBase plugin on your instances, Stackdriver Monitoring populates the HBase Services page with inventory and metrics.
Configuring Stackdriver Monitoring to monitor HBase
After you install the monitoring agent,
use the following instructions to configure the HBase plugin on your instances.
For instructions on upgrading from the legacy
jmxtrans monitoring, see
Upgrading from jmxtrans below.
The HBase plugin requires version 5.5.0-257 or later of the monitoring agent. To update the agent, see Upgrading the agent.
Enabling the HBase monitoring plugin
HBase is monitored via JMX. Stackdriver Monitoring has separate configurations for monitoring HBase versions 0.98 and above, and versions 0.95 and below. It also supports monitoring HBase 0.98 and above running in a standalone configuration (all services on the same port).
On your VM instance, download the appropriate configuration file from the
GitHub configuration repository
based on your HBase version
and place it in the directory
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/hbase-098.conf)
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/hbase-098-standalone.conf)
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/hbase-095.conf)
If you use Thrift, see Enabling Thrift monitoring below.
The downloaded plugin configuration file assumes that your HBase master is configured to accept JMX connections on port 10101 and your HBase regionserver in non-standalone mode is configured to accept JMX connections on port 10102. If you have configured HBase with different JMX ports, edit the file and follow the instructions to change the JMX port settings.
After adding the configuration files, restart the monitoring agent by running the following command:
sudo service stackdriver-agent restart
Information on other plugin configuration options can be found at collectd.org.
Enabling Thrift monitoring
Thrift is a cross-language services framework commonly used with HBase.
If you wish to monitor Thrift metrics, download
/opt/stackdriver/collectd/etc/collectd.d/ in addition to the HBase plugin configuration:
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/hbase-thrift.conf)
What is monitored
The HBase plugin monitors the following metrics:
- blockCacheExpressCachingRatio: The cache-hit ratio for reads configured to look in the cache.
- callQueueLength: Point in time of the RegionServer call queue.
- compactionQueueLength: Point in time length of the compaction queue.
- memstoreSize: Point in time sum of all memstore sizes in the RegionServer.
- slowHLogAppendCount: Number of slow HLog append writes for the RegionServer.
- usedHeap: Heap space used by the RegionServer.
Stackdriver Monitoring also monitors the following basic JVM metrics:
- Active JVM Threads
- JVM Heap memory usage
- JVM Non-Heap memory usage
- JVM Open File Descriptors
- JVM Garbage Collection Count
Upgrading from jmxtrans
If you are currently running a VM with the legacy
you need to upgrade all of the Java-based plugins, namely
Tomcat. After you've upgraded those plugins
and restarted the
stackdriver-agent service, you can shut down the
process. You can then uninstall
jmxtrans by removing the
tree and the
/etc/init.d/jmxtrans script (if the script is present).