Elasticsearch
Elasticsearch
Overview
The Elasticsearch integration with Motadata AIOps enables comprehensive visibility into cluster and node performance through API-based data collection. It monitors thread pools, transport I/O, index operations, JVM health, cache efficiency, and disk I/O, providing complete observability into the stability and workload of Elasticsearch nodes.
Prerequisites
Ensure the following prerequisites are met before adding an Elasticsearch instance for monitoring:
- Elasticsearch REST API endpoint is reachable from the Motadata server.
- API user must have read access to
_nodes/stats,_cluster/health, and_cat/indicesendpoints. - Authentication (Basic or API key) must be configured if security is enabled.
- Nodes should expose metrics in JSON format compatible with the Elasticsearch Stats API.
List of Supported KPIs
Node Information
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.id | Unique ID of the Elasticsearch node. | String |
| elasticsearch.node.version | Elasticsearch version running on the node. | String |
| elasticsearch.node.name | Name of the Elasticsearch node. | String |
Thread Pool Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.thread.pool | Thread pool statistics group. | String |
| elasticsearch.node.thread.pool.threads | Total threads assigned to the pool. | Count |
| elasticsearch.node.thread.pool.queue.tasks | Tasks currently queued. | Count |
| elasticsearch.node.thread.pool.active.tasks | Currently active threads executing tasks. | Count |
| elasticsearch.node.thread.pool.rejected.tasks | Rejected task count. | Count |
| elasticsearch.node.thread.pool.max.threads | Maximum threads allowed in the pool. | Count |
| elasticsearch.node.thread.pool.completed.tasks | Completed task count. | Count |
Node CPU Utilization
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.cpu.utilized.percent | Node CPU utilization percentage. | Percent |
Transport Layer Statistics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.transport.sent.bytes | Total bytes transmitted via transport layer. | Bytes |
| elasticsearch.node.transport.received.bytes | Total bytes received via transport layer. | Bytes |
| elasticsearch.node.transport.sent.packets | Total packets sent. | Count |
| elasticsearch.node.transport.received.packets | Total packets received. | Count |
Indexing Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.indices.indexing.index.time.ms | Time spent in index operations. | Milliseconds |
| elasticsearch.node.indices.indexing.delete.time.ms | Time spent deleting documents. | Milliseconds |
| elasticsearch.node.indices.indexing.throttle.time.ms | Indexing throttle duration. | Milliseconds |
Get Operations
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.indices.get.requests | Total number of GET requests. | Count |
| elasticsearch.node.indices.get.time.ms | Total time taken for GET operations. | Milliseconds |
| elasticsearch.node.indices.get.exists | Count of existing document GET requests. | Count |
| elasticsearch.node.indices.get.exists.time.ms | Time spent in EXISTS queries. | Milliseconds |
| elasticsearch.node.indices.current.get.requests | Currently executing GET requests. | Count |
Search Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.indices.search.queries | Total search queries executed. | Count |
| elasticsearch.node.indices.search.queries.time.ms | Time spent processing search queries. | Milliseconds |
| elasticsearch.node.indices.search.fetches | Total fetch operations. | Count |
| elasticsearch.node.indices.search.fetches.time.ms | Time spent fetching results. | Milliseconds |
| elasticsearch.node.indices.search.scrolls | Total scroll search operations. | Count |
| elasticsearch.node.indices.search.scrolls.time.ms | Time spent in scroll queries. | Milliseconds |
| elasticsearch.node.indices.search.suggestions | Suggest query count. | Count |
| elasticsearch.node.indices.search.suggestions.time.ms | Time spent generating suggestions. | Milliseconds |
Merge, Refresh, and Flush Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.indices.merges | Number of segment merge operations. | Count |
| elasticsearch.node.indices.merges.time.ms | Time spent merging index segments. | Milliseconds |
| elasticsearch.node.indices.refreshes | Number of refresh operations. | Count |
| elasticsearch.node.indices.refreshes.time.ms | Time spent in refresh. | Milliseconds |
| elasticsearch.node.indices.external.refreshes | External refresh count. | Count |
| elasticsearch.node.indices.external.refreshes.time.ms | Time spent in external refreshes. | Milliseconds |
| elasticsearch.node.indices.flushes | Total flush operations. | Count |
| elasticsearch.node.indices.periodic.flushes | Periodic flush count. | Count |
| elasticsearch.node.indices.flushes.time.ms | Time spent flushing data to disk. | Milliseconds |
| elasticsearch.node.indices.current.warmers | Current warmer operations. | Count |
| elasticsearch.node.indices.warmers | Total warmer operations executed. | Count |
| elasticsearch.node.indices.warmers.time.ms | Time spent in warm-up operations. | Milliseconds |
Circuit Breaker Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.breaker | Circuit breaker metrics. | String |
| elasticsearch.node.breaker.used.size.bytes | Estimated memory usage tracked by breaker. | Bytes |
| elasticsearch.node.breaker.limit.size.bytes | Memory limit before tripping. | Bytes |
| elasticsearch.node.breaker.tripped | Circuit breaker tripped count. | Count |
Cache Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.cache | Cache metrics group. | String |
| elasticsearch.node.cache.capacity.bytes | Total cache capacity. | Bytes |
| elasticsearch.node.cache.evictions | Cache evictions count. | Count |
Disk I/O Metrics
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.fs.io.reads | Disk read operations. | Count |
| elasticsearch.node.fs.io.writes | Disk write operations. | Count |
| elasticsearch.node.fs.io.read.bytes | Bytes read from disk. | Bytes |
| elasticsearch.node.fs.io.write.bytes | Bytes written to disk. | Bytes |
JVM Heap and Memory
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.jvm.heap.committed.bytes | Committed JVM heap memory. | Bytes |
| elasticsearch.node.jvm.heap.max.bytes | Maximum available JVM heap memory. | Bytes |
| elasticsearch.node.jvm.heap.used.bytes | Heap memory currently in use. | Bytes |
| elasticsearch.node.jvm.heap.used.percent | Percent of heap memory used. | Percent |
| elasticsearch.node.jvm.heap.free.bytes | Free heap memory. | Bytes |
| elasticsearch.node.jvm.non.heap.committed.bytes | Committed non-heap memory. | Bytes |
| elasticsearch.node.jvm.non.heap.used.bytes | Used non-heap memory. | Bytes |
| elasticsearch.node.jvm.non.heap.free.bytes | Free non-heap memory. | Bytes |
| elasticsearch.node.jvm.non.heap.used.percent | Non-heap memory usage percentage. | Percent |
JVM Garbage Collection
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.jvm.gc.young.collections | Count of young generation collections. | Count |
| elasticsearch.node.jvm.gc.young.collection.time.ms | Time spent in young GC. | Milliseconds |
| elasticsearch.node.jvm.gc.g1.concurrent.collections | Count of G1 concurrent collections. | Count |
| elasticsearch.node.jvm.gc.g1.concurrent.collection.time.ms | Time spent in G1 concurrent GC. | Milliseconds |
| elasticsearch.node.jvm.gc.old.collections | Count of old generation collections. | Count |
| elasticsearch.node.jvm.gc.old.collection.time.ms | Time spent in old GC. | Milliseconds |
JVM Buffer Pools
| Metric | Description | Type |
|---|---|---|
| elasticsearch.node.jvm.buffer.pools.mapped.buffers | Number of mapped buffers. | Count |
| elasticsearch.node.jvm.buffer.pools.mapped.used.bytes | Bytes used by mapped buffers. | Bytes |
| elasticsearch.node.jvm.buffer.pools.mapped.capacity.bytes | Total capacity of mapped buffers. | Bytes |
| elasticsearch.node.jvm.buffer.pools.directs | Count of direct buffers. | Count |
| elasticsearch.node.jvm.buffer.pools.direct.used.bytes | Bytes used by direct buffers. | Bytes |
| elasticsearch.node.jvm.buffer.pools.direct.capacity.bytes | Capacity of direct buffers. | Bytes |
| elasticsearch.node.jvm.buffer.pools.mapped.nonvolatiles | Count of non-volatile mapped buffers. | Count |
| elasticsearch.node.jvm.buffer.pools.mapped.nonvolatile.used.bytes | Bytes used by non-volatile mapped buffers. | Bytes |
| elasticsearch.node.jvm.buffer.pools.mapped.nonvolatile.capacity.bytes | Capacity of non-volatile mapped buffers. | Bytes |