The [Accumulo monitor][monitor] provides the easiest way to view Accumulo metrics but it has two limitations:
The Accumulo monitor could be improved to be better a visualization tool for metrics but this doesn‘t make sense when tools like [Grafana], [Graphite], and [Ganglia] exist and Accumulo can report metrics to these tools using [Hadoop Metrics2][metrics2]. While it’s easy to configure Accumulo to send metrics, the hard part is setting up and configuring a metrics visualization tool (i.e Graphite, Ganglia, Grafana/InfluxDB) to collect and view these metrics.
To ease this burden, this post describes how to send Accumulo metrics to [InfluxDB], a time series database, and make them viewable in [Grafana], a visualization tool.
Below is a screenshot of Accumulo metrics in Grafana:
Uno can setup and configure InfluxDB/Grafana when it sets up Accumulo using the following command:
uno setup accumulo --with-metrics
Metrics from Accumulo will be immediately viewable in Grafana at http://localhost:3000/.
[[graphite]] bind-address = ":2003" enabled = true database = "accumulo_metrics" protocol = "tcp" consistency-level = "one" separator = "_" batch-size = 1000 batch-pending = 5 batch-timeout = "1s" templates = [ "accumulo.*.*.*.*.*.*.* measurement.measurement.measurement.d.e.f.host.measurement", "accumulo.*.*.*.*.*.* measurement.measurement.measurement.d.e.host.measurement", "accumulo.*.*.*.*.* measurement.measurement.measurement.d.host.measurement", ]
hadoop-metrics2-accumulo.properties
to send Graphite metrics to InfluxDB. Below is example configuration. Remember to replace <INFLUXDB_HOST>
with the actual host.*.period=30 accumulo.sink.graphite.class=org.apache.hadoop.metrics2.sink.GraphiteSink accumulo.sink.graphite.server_host=<INFLUXDB_HOST> accumulo.sink.graphite.server_port=2003 accumulo.sink.graphite.metrics_prefix=accumuloMake sure the reporting frequency is set to 30 sec (i.e
*.period=30
). This is required if you are using the provided Grafana dashboards that is configured in the next step.dashboards/
directory configured below.[dashboards.json] enabled = true path = <GRAFANA_HOME>/dashboards
[metrics2]: {{ site.baseurl }}/docs/2.x/administration/monitoring-metrics#hadoop-metrics2 [Graphite]: https://graphiteapp.org/ [Ganglia]: http://ganglia.sourceforge.net/ [monitor]: {{ site.baseurl }}/features/#screenshots [Grafana]: http://grafana.org/ [InfluxDB]: https://influxdb.com/ [dashboard]: https://raw.githubusercontent.com/apache/fluo-uno/master/conf/grafana/accumulo-dashboard.json