Send elasticsearch metrics to graphite
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


es2graphite gathers elasticsearch stats and status information and sends them to a graphite server. One or more elasticsearch hosts can be specified and requests will be round-robined between each server.


  • node stats
  • node disk allocation
  • indices stats
  • indices status
  • cluster health
  • segments status


  • each metric starts with a prefix + the cluster name
  • metrics will be sent to graphite at the specified interval
  • node names will be used in metrics vs. node id's
  • if a shard is moved to a new node, a new metric using the new node name is used
  • cluster status:
    • 0 = red
    • 1 = yellow
    • 2 = green
  • shard state:
    • 0 = created
    • 1 = recovering
    • 2 = started
    • 3 = relocated
    • 4 = closed
  • metrics are sent to graphite via tcp payload
usage: [-h] [-p PREFIX] [-g GRAPHITE_HOST] [-o GRAPHITE_PORT]
                      [-i INTERVAL] [-l LOG_FILE]
                      [--health-level {cluster,indices,shards}]
                      [--log-level {info,warn,error,debug}]
                      [--protocol {plaintext,pickle}] [--stdout]
                      [--shard-stats] [--segments] [-d] [-v]
                      ES_HOST [ES_HOST ...]

Send elasticsearch metrics to graphite

positional arguments:
  ES_HOST               elasticsearch host:port

optional arguments:
  -h, --help            show this help message and exit
  -p PREFIX, --prefix PREFIX
                        graphite metric prefix. Default: es
  -g GRAPHITE_HOST, --graphite-host GRAPHITE_HOST
                        graphite hostname. Default: localhost
  -o GRAPHITE_PORT, --graphite-port GRAPHITE_PORT
                        graphite port. Default: 2004
  -i INTERVAL, --interval INTERVAL
                        interval in seconds. Default: 60
  -l LOG_FILE, --log-file LOG_FILE
                        full path to the log file. Default: ./es2graphite.log
  --health-level {cluster,indices,shards}
                        The level of health metrics. Default: indices
  --log-level {info,warn,error,debug}
                        The logging level. Default: warn
  --protocol {plaintext,pickle}
                        The graphite submission protocol. Default: pickle
  --stdout              output logging to stdout. Default: False
  --shard-stats         Collect shard level stats metrics. Default: False
  --segments            Collect low-level segment metrics. Default: False
  -d, --dry-run         Print metrics, don't send to graphite. Default: False
  -v, --verbose         Verbose output. Default: False