{
  "id": "59065880-3419-43b7-b8c3-44fb823fc508",
  "meta": {
    "name": "Elasticsearch",
    "measurements": ["elasticsearch_indices"],
    "version": "1.1",
    "dashboardVersion": "1.x",
    "description": "Dashboard for the telegraf input plug-in: Elasticsearch",
    "author": "influxdata",
    "license": "MIT",
    "icon": "",
    "url": "https://github.com/influxdata/telegraf/tree/master/plugins/inputs/elasticsearch"
  },
  "data": {
    "cells": [
      {
        "w": 12,
        "h": 4,
        "name": "ElasticSearch - Query Throughput",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(search_query_total)) AS searches_per_min, non_negative_derivative(mean(search_scroll_total)) AS scrolls_per_min, non_negative_derivative(mean(search_fetch_total)) AS fetches_per_min, non_negative_derivative(mean(search_suggest_total)) AS suggests_per_min FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 12,
        "h": 4,
        "name": "ElasticSearch - Open Connections",
        "queries": [
          {
            "query": "SELECT mean(current_open) FROM \":db:\".\":rp:\".\"elasticsearch_http\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 6,
        "h": 4,
        "name": "ElasticSearch - Query Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(search_query_time_in_millis)) AS mean, non_negative_derivative(median(search_query_time_in_millis)) AS median, non_negative_derivative(percentile(search_query_time_in_millis, 95)) AS ninety_fifth FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 6,
        "h": 4,
        "name": "ElasticSearch - Fetch Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(search_fetch_time_in_millis)) AS mean, non_negative_derivative(median(search_fetch_time_in_millis)) AS median, non_negative_derivative(percentile(search_fetch_time_in_millis, 95)) AS ninety_fifth FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 6,
        "h": 4,
        "name": "ElasticSearch - Suggest Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(search_suggest_time_in_millis)) AS mean, non_negative_derivative(median(search_suggest_time_in_millis)) AS median, non_negative_derivative(percentile(search_suggest_time_in_millis, 95)) AS ninety_fifth FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 6,
        "h": 4,
        "name": "ElasticSearch - Scroll Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(search_scroll_time_in_millis)) AS mean, non_negative_derivative(median(search_scroll_time_in_millis)) AS median, non_negative_derivative(percentile(search_scroll_time_in_millis, 95)) AS ninety_fifth FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 12,
        "h": 4,
        "name": "ElasticSearch - Indexing Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(indexing_index_time_in_millis)) AS mean FROM \":db:\".\":rp:\".\"elasticsearch_indices\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 4,
        "h": 4,
        "name": "ElasticSearch - JVM GC Collection Counts",
        "queries": [
          {
            "query": "SELECT mean(gc_collectors_old_collection_count) AS old_count, mean(gc_collectors_young_collection_count) AS young_count FROM \":db:\".\":rp:\".\"elasticsearch_jvm\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 4,
        "h": 4,
        "name": "ElasticSearch - JVM GC Latency",
        "queries": [
          {
            "query": "SELECT non_negative_derivative(mean(gc_collectors_old_collection_time_in_millis)) AS mean_old_time, non_negative_derivative(mean(gc_collectors_young_collection_time_in_millis)) AS mean_young_time FROM \":db:\".\":rp:\".\"elasticsearch_jvm\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      },
      {
        "w": 4,
        "h": 4,
        "name": "ElasticSearch - JVM Heap Usage",
        "queries": [
          {
            "query": "SELECT mean(mem_heap_used_percent) FROM \":db:\".\":rp:\".\"elasticsearch_jvm\" WHERE time > :dashboardTime: AND \"host\" = :host: GROUP BY time(:interval:)"
          }
        ],
        "type": "line",
        "axes": {
          "x": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          },
          "y2": {
            "prefix": "",
            "suffix": "",
            "base": "10",
            "scale": "linear",
            "label": "",
            "bounds": ["", ""]
          }
        }
      }
    ],
    "templates": [
      {
        "tempVar": ":host:",
        "id": "",
        "type": "tagValues",
        "label": "",
        "values": [],
        "query": {
          "influxql": "SHOW TAG VALUES ON :database: FROM :measurement: WITH KEY=:tagKey:",
          "db": "telegraf",
          "measurement": "elasticsearch_indices",
          "tagKey": "host",
          "fieldKey": ""
        }
      }
    ]
  }
}
