Skip to main content

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/indices endpoints.
  • 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

MetricDescriptionType
elasticsearch.node.idUnique ID of the Elasticsearch node.String
elasticsearch.node.versionElasticsearch version running on the node.String
elasticsearch.node.nameName of the Elasticsearch node.String

Thread Pool Metrics

MetricDescriptionType
elasticsearch.node.thread.poolThread pool statistics group.String
elasticsearch.node.thread.pool.threadsTotal threads assigned to the pool.Count
elasticsearch.node.thread.pool.queue.tasksTasks currently queued.Count
elasticsearch.node.thread.pool.active.tasksCurrently active threads executing tasks.Count
elasticsearch.node.thread.pool.rejected.tasksRejected task count.Count
elasticsearch.node.thread.pool.max.threadsMaximum threads allowed in the pool.Count
elasticsearch.node.thread.pool.completed.tasksCompleted task count.Count

Node CPU Utilization

MetricDescriptionType
elasticsearch.node.cpu.utilized.percentNode CPU utilization percentage.Percent

Transport Layer Statistics

MetricDescriptionType
elasticsearch.node.transport.sent.bytesTotal bytes transmitted via transport layer.Bytes
elasticsearch.node.transport.received.bytesTotal bytes received via transport layer.Bytes
elasticsearch.node.transport.sent.packetsTotal packets sent.Count
elasticsearch.node.transport.received.packetsTotal packets received.Count

Indexing Metrics

MetricDescriptionType
elasticsearch.node.indices.indexing.index.time.msTime spent in index operations.Milliseconds
elasticsearch.node.indices.indexing.delete.time.msTime spent deleting documents.Milliseconds
elasticsearch.node.indices.indexing.throttle.time.msIndexing throttle duration.Milliseconds

Get Operations

MetricDescriptionType
elasticsearch.node.indices.get.requestsTotal number of GET requests.Count
elasticsearch.node.indices.get.time.msTotal time taken for GET operations.Milliseconds
elasticsearch.node.indices.get.existsCount of existing document GET requests.Count
elasticsearch.node.indices.get.exists.time.msTime spent in EXISTS queries.Milliseconds
elasticsearch.node.indices.current.get.requestsCurrently executing GET requests.Count

Search Metrics

MetricDescriptionType
elasticsearch.node.indices.search.queriesTotal search queries executed.Count
elasticsearch.node.indices.search.queries.time.msTime spent processing search queries.Milliseconds
elasticsearch.node.indices.search.fetchesTotal fetch operations.Count
elasticsearch.node.indices.search.fetches.time.msTime spent fetching results.Milliseconds
elasticsearch.node.indices.search.scrollsTotal scroll search operations.Count
elasticsearch.node.indices.search.scrolls.time.msTime spent in scroll queries.Milliseconds
elasticsearch.node.indices.search.suggestionsSuggest query count.Count
elasticsearch.node.indices.search.suggestions.time.msTime spent generating suggestions.Milliseconds

Merge, Refresh, and Flush Metrics

MetricDescriptionType
elasticsearch.node.indices.mergesNumber of segment merge operations.Count
elasticsearch.node.indices.merges.time.msTime spent merging index segments.Milliseconds
elasticsearch.node.indices.refreshesNumber of refresh operations.Count
elasticsearch.node.indices.refreshes.time.msTime spent in refresh.Milliseconds
elasticsearch.node.indices.external.refreshesExternal refresh count.Count
elasticsearch.node.indices.external.refreshes.time.msTime spent in external refreshes.Milliseconds
elasticsearch.node.indices.flushesTotal flush operations.Count
elasticsearch.node.indices.periodic.flushesPeriodic flush count.Count
elasticsearch.node.indices.flushes.time.msTime spent flushing data to disk.Milliseconds
elasticsearch.node.indices.current.warmersCurrent warmer operations.Count
elasticsearch.node.indices.warmersTotal warmer operations executed.Count
elasticsearch.node.indices.warmers.time.msTime spent in warm-up operations.Milliseconds

Circuit Breaker Metrics

MetricDescriptionType
elasticsearch.node.breakerCircuit breaker metrics.String
elasticsearch.node.breaker.used.size.bytesEstimated memory usage tracked by breaker.Bytes
elasticsearch.node.breaker.limit.size.bytesMemory limit before tripping.Bytes
elasticsearch.node.breaker.trippedCircuit breaker tripped count.Count

Cache Metrics

MetricDescriptionType
elasticsearch.node.cacheCache metrics group.String
elasticsearch.node.cache.capacity.bytesTotal cache capacity.Bytes
elasticsearch.node.cache.evictionsCache evictions count.Count

Disk I/O Metrics

MetricDescriptionType
elasticsearch.node.fs.io.readsDisk read operations.Count
elasticsearch.node.fs.io.writesDisk write operations.Count
elasticsearch.node.fs.io.read.bytesBytes read from disk.Bytes
elasticsearch.node.fs.io.write.bytesBytes written to disk.Bytes

JVM Heap and Memory

MetricDescriptionType
elasticsearch.node.jvm.heap.committed.bytesCommitted JVM heap memory.Bytes
elasticsearch.node.jvm.heap.max.bytesMaximum available JVM heap memory.Bytes
elasticsearch.node.jvm.heap.used.bytesHeap memory currently in use.Bytes
elasticsearch.node.jvm.heap.used.percentPercent of heap memory used.Percent
elasticsearch.node.jvm.heap.free.bytesFree heap memory.Bytes
elasticsearch.node.jvm.non.heap.committed.bytesCommitted non-heap memory.Bytes
elasticsearch.node.jvm.non.heap.used.bytesUsed non-heap memory.Bytes
elasticsearch.node.jvm.non.heap.free.bytesFree non-heap memory.Bytes
elasticsearch.node.jvm.non.heap.used.percentNon-heap memory usage percentage.Percent

JVM Garbage Collection

MetricDescriptionType
elasticsearch.node.jvm.gc.young.collectionsCount of young generation collections.Count
elasticsearch.node.jvm.gc.young.collection.time.msTime spent in young GC.Milliseconds
elasticsearch.node.jvm.gc.g1.concurrent.collectionsCount of G1 concurrent collections.Count
elasticsearch.node.jvm.gc.g1.concurrent.collection.time.msTime spent in G1 concurrent GC.Milliseconds
elasticsearch.node.jvm.gc.old.collectionsCount of old generation collections.Count
elasticsearch.node.jvm.gc.old.collection.time.msTime spent in old GC.Milliseconds

JVM Buffer Pools

MetricDescriptionType
elasticsearch.node.jvm.buffer.pools.mapped.buffersNumber of mapped buffers.Count
elasticsearch.node.jvm.buffer.pools.mapped.used.bytesBytes used by mapped buffers.Bytes
elasticsearch.node.jvm.buffer.pools.mapped.capacity.bytesTotal capacity of mapped buffers.Bytes
elasticsearch.node.jvm.buffer.pools.directsCount of direct buffers.Count
elasticsearch.node.jvm.buffer.pools.direct.used.bytesBytes used by direct buffers.Bytes
elasticsearch.node.jvm.buffer.pools.direct.capacity.bytesCapacity of direct buffers.Bytes
elasticsearch.node.jvm.buffer.pools.mapped.nonvolatilesCount of non-volatile mapped buffers.Count
elasticsearch.node.jvm.buffer.pools.mapped.nonvolatile.used.bytesBytes used by non-volatile mapped buffers.Bytes
elasticsearch.node.jvm.buffer.pools.mapped.nonvolatile.capacity.bytesCapacity of non-volatile mapped buffers.Bytes