Elasticsearch - Monitoring Extension

AppDynamics Elasticsearch Monitoring Extension


This extension works only with the standalone machine agent.


Use Case


Elasticsearch is a distributed RESTful search server based on Lucene which provides a distributed multitenant-capable full text search engine. This extension collects cluster health metrics, nodes and indices stats from a Elasticsearch engine and presents them in AppDynamics Metric Browser.




  1. Download the file ElasticSearchMonitor.zip into <machineagent install dir>/monitors/
  2. Unzip the downloaded file
  3. In <machineagent install dir>/monitors/ElasticSearchMonitor/, open config.yaml and configure the ElasticSearch parameters.
           - host: ""
             port: ""
             username: ""
             password: ""
             usessl: false
             displayName: ""
             # To disable the pull of json metrics
             enableJsonMetrics: true
             # To get the metrics through CAT apis
               - endPoint: "/_cat/allocation?v&bytes=b&h=node,shards,diskUsed,diskAvailable,diskTotal,diskPercent"
                  # Any prefixes
                 metricPrefix: "Allocation"
                  # The keys to be used in metric path. Picks up in the same order.
                 metricKeys: [
               - endPoint: "/_cat/indices?v&bytes=b&h=index,health,status,shardsPrimary,shardsReplica,docsCount,docsDeleted,storeSize,pri.store.size"
                 metricPrefix: "Indices"
                 metricKeys: [
               - endPoint: "/_cat/recovery?v&bytes=b&h=index,shard,files,files_percent,bytes,bytes_percent"
                 metricPrefix: "Recovery"
                 metricKeys: [
               - endPoint: "_cat/thread_pool?v&bytes=b&h=host,bulk.active,bulk.size,bulk.queue,bulk.queueSize,bulk.rejected,bulk.largest,bulk.completed,bulk.min,bulk.max"
                 metricPrefix: "ThreadPool"
                 metricKeys: [
               - endPoint: "/_cat/shards?v&bytes=b&h=node,index,shard,docs,store"
                 metricPrefix: "Shards"
                 metricKeys: [
         metricPathPrefix: "Custom Metrics|Elastic Search|"  
  4. Restart the Machine Agent.


In the AppDynamics Metric Browser, look for: Application Infrastructure Performance | <Tier> | Custom Metrics | Elastic Search




Cluster Metrics: The following metrics are reported under <ClusterName>

Metric NameDescription
statusred (0), yellow (1), green(2)
number of nodesnumber of nodes in this cluster
number of data nodesnumber of data nodes
active primary shardsactive primary shards
active shardsactive shards
relocating shardsrelocating shards
initializing shardsinitializing shards
unassigned shardsunassigned shards


Node Statistics: The following metrics are reported for each Node in the cluster under Nodes | <NodeName>

Metric NameDescription
size of indicessize of indices (MB)
num docsnumber of documents
open file descriptorsopen file descriptors count
threads countnumber of threads used


Indices Statistics: The following metrics are reported for each Index under Indices | <IndexName>

Metric NameDescription
primary sizeprimary size of index (MB)
sizetotal size of index (MB)
num docsnumber of documents


Cat Level Statistics: As mentioned https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html


Custom Dashboard





Always feel free to fork and contribute any changes directly via GitHub.




For any support questions, please contact help@appdynamics.com.






Last Update:

1st Sep, 2015


2.0 - Added support for CAT apis.

2.1 - Added support for Authentication.