Awesome Open Source
Awesome Open Source


Reads key cluster metrics from ElasticSearch and writes to Graphite. Make pretty graphs: ScreenShot

This is intended for high-level, general cluster data. More granular data is better fetched on a per-node basis using other tools.


es-stats has no external dependencies (you're welcome). Assuming Go is installed (built/tested with 1.4.x):

  • go get
  • go build

Binary will be found at: $GOPATH/bin/es-stats

Starter Grafana template:



./es-stats -h
Usage of ./es-stats:
  -graphite-ip="": Destination Graphite IP address
  -graphite-port="2003": Destination Graphite plaintext port
  -interval=30: Metrics polling interval
  -ip="": ElasticSearch IP address
  -metrics-prefix="elasticsearch": Top-level Graphite namespace prefix (defaults to hostname)
  -port="9200": ElasticSearch port
  -require-master=false: Only poll if node is an elected master


% ./es-stats -ip="" -interval=5 -graphite-ip="" -graphite-port="2013"
2015/03/04 15:27:56 Connected to ElasticSearch:
2015/03/04 15:27:56 Connected to Graphite: port 2013
2015/03/04 15:28:01 Metrics received
2015/03/04 15:28:01 Metrics flushed to Graphite
2015/03/04 15:28:06 Metrics received
2015/03/04 15:28:06 Metrics flushed to Graphite
2015/03/04 15:28:11 Metrics received
2015/03/04 15:28:11 Metrics flushed to Graphite
2015/03/04 15:28:16 Metrics received
2015/03/04 15:28:16 Metrics flushed to Graphite

Get metrics: ScreenShot

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (15,168
monitoring (631
elasticsearch (549
metrics (346
graphite (55