Elasticsearch is an open-source search server, based on the Lucene search library. It runs in a Java virtual machine on top of a number of operating systems. For more information visit http://elasticsearch.org.
Stackdriver Monitoring does not automatically detect Elasticsearch. To monitor Elasticsearch, configure the Elasticsearch plugin for the monitoring agent.
The services discovered are displayed on the Elasticsearch Services page in the Resources menu. After you install the monitoring agent and configure the Elasticsearch plugin on your instances, Stackdriver Monitoring populates the Elasticsearch Services page with inventory and metrics.
Configuring Stackdriver Monitoring to monitor Elasticsearch
After you install the monitoring agent, use the following instructions to configure the Elasticsearch plugin on your instances.
The Elasticsearch plugin requires version 5.5.0-315 or later of the monitoring agent. To update the agent, see Upgrading the agent.
Enabling the Elasticsearch monitoring plugin
Stackdriver Monitoring has separate configurations for monitoring Elasticsearch versions 0.90.x and below, and versions 1.0.x and above.
On your VM instance, download the appropriate configuration file from the
GitHub configuration repository
and place it in the directory
Elasticsearch 0.90.x and below
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/elasticsearch.conf)
Elasticsearch 1.0.x and above
(cd /opt/stackdriver/collectd/etc/collectd.d/ && curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/elasticsearch-1.conf)
After adding the configuration file, restart the monitoring agent by running the following command:
sudo service stackdriver-agent restart
Information on other plugin configuration options can be found at collectd.org.
What is monitored
The Elasticsearch plugin monitors the following metrics:
- Search Requests (count/s): How many Fetch and Query requests came in per second in the last interval.
- Search Time (ms/s): How many milliseconds were spent on Fetch and Query searches per second of the last interval.
- Get Requests (count/s): How many Get/Exists/Missing requests came in per second in the last interval.
- Get Time (ms/s): How many milliseconds were spent on Get/Exists/Missing requests per second of the last interval.
- Indexing Requests (count/s): How many Index and Delete requests came in per second in the last interval.
- Indexing Time (ms/s): How many milliseconds were spent on Index and Delete requests per second of the last interval.
- Cache Sizes (bytes): How big are the filter and field caches.
- Cache Evictions (count/s): How many field and filter cache evictions took place per second.
- Store Size (bytes): How big is the Elasticsearch index.
- Network Usage (bytes/s): Inbound and outbound network usage in bytes per second.
- Network Connections (count): How many http and transport-level network connections are open when sampled.
- Open Files (count): How many file descriptors are opened by the Elasticsearch process.
- Document Count (count): How many documents and deleted documents are in the ES.
Stackdriver Monitoring also monitors the following basic JVM metrics:
- Active JVM Threads
- JVM Heap memory usage
- JVM Non-Heap memory usage