Elasticsearch Receiver
contrib
Maintainers: @jsirianni, @VihasMakwana, @rogercoll
Source: opentelemetry-collector-contrib
Supported Telemetry
Overview
Note: in the future, Elasticsearch will be instrumented with the OpenTelemetry Java SDK directly (https://github.com/elastic/elasticsearch/issues/109335). When this is complete, native OpenTelemetry metrics may be added for measuring cluster health, index statistics, and so on. Please subscribe to the linked issue to keep updated.Prerequisites
This receiver supports Elasticsearch versions 7.9+ If Elasticsearch security features are enabled, you must have either themonitor or manage cluster privilege.
See the Elasticsearch docs for more information on authorization and Security privileges.
Configuration
The following settings are optional:-
nodes(default:["_all"]): Allows specifying node filters that define which nodes are scraped for node-level and cluster-level metrics. See the Elasticsearch documentation for allowed filters. If this option is left explicitly empty, then no node-level metrics will be scraped and cluster-level metrics will scrape only metrics related to cluster’s health. NOTE: If running one receiver instance per node, set this option to["_local"]. -
skip_cluster_metrics(default:false): If true, cluster-level metrics will not be scraped. -
cluster_stats_master_only(default:false): If true, cluster stats (from/_cluster/stats) will only be scraped when this receiver’s endpoint is the cluster’s current elected master node. This is useful when running one receiver instance per node against the same cluster, to avoid every instance issuing the same cluster-wide call on every collection interval. Has no effect ifskip_cluster_metricsis true. NOTE: Whencluster_stats_master_onlyis enabled, the/_cluster/statscall always targets_allnodes, regardless of thenodessetting. This is intentional:nodescontrols which node(s) the per-nodeNodeStatscall reports on (e.g._local, so each instance is attributed to its own node), but/_cluster/statsis a cluster-wide aggregate. If it inherited anodes: ["_local"]filter, the elected master would report stats for only itself instead of the whole cluster, silently changing the meaning of these metrics. -
indices(default:["_all"]): Allows specifying index filters that define which indices are scraped for index-level metrics. See the Elasticsearch documentation for allowed filters. If this option is left explicitly empty, then no index-level metrics will be scraped. -
index_stats_master_only(default:false): If true, index stats (from/_stats) will only be scraped when this receiver’s endpoint is the cluster’s current elected master node. Same rationale ascluster_stats_master_only. NOTE: While the cluster is in the middle of a master election (e.g. the previous master node was restarted or the cluster lost quorum), Elasticsearch’s/_cluster/state/master_nodeendpoint reports no elected master. During that window, every receiver instance evaluates as “not master,” so withcluster_stats_master_onlyand/orindex_stats_master_onlyenabled, the corresponding stats will not be scraped from any instance until a new master is elected. -
endpoint(default =http://localhost:9200): The base URL of the Elasticsearch API for the cluster to monitor. -
username(no default): Specifies the username used to authenticate with Elasticsearch using basic auth. Must be specified if password is specified. -
password(no default): Specifies the password used to authenticate with Elasticsearch using basic auth. Must be specified if username is specified. -
collection_interval(default =10s): This receiver collects metrics on an interval. This value must be a string readable by Golang’s time.ParseDuration. On larger clusters, the interval may need to be lengthened, as querying Elasticsearch for metrics will take longer on clusters with more nodes. -
initial_delay(default =1s): defines how long this receiver waits before starting.
Example Configuration
Metrics
The following metric are available with versions:elasticsearch.indexing_pressure.memory.limit>= 7.10elasticsearch.node.shards.data_set.size>= 7.13elasticsearch.cluster.state_update.count>= 7.16.0elasticsearch.cluster.state_update.time>= 7.16.0
Metrics
Attributes
Resource Attributes
Configuration
Example Configuration
Last generated: 2026-10-05