All Projects → vvanholl → Elasticsearch Prometheus Exporter

vvanholl / Elasticsearch Prometheus Exporter

Licence: apache-2.0
Prometheus exporter plugin for Elasticsearch

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Elasticsearch Prometheus Exporter

Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (-78.48%)
Mutual labels:  elasticsearch, prometheus
Alertmanager2es
Receives HTTP webhook notifications from AlertManager and inserts them into an Elasticsearch index for searching and analysis
Stars: ✭ 173 (-57.7%)
Mutual labels:  elasticsearch, prometheus
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+11129.83%)
Mutual labels:  elasticsearch, prometheus
Elasticsearch exporter
Elasticsearch stats exporter for Prometheus
Stars: ✭ 1,189 (+190.71%)
Mutual labels:  elasticsearch, prometheus
K8s Tew
Kubernetes - The Easier Way
Stars: ✭ 269 (-34.23%)
Mutual labels:  elasticsearch, prometheus
Kibananestedsupportplugin
A plugin for Kibana 5.5 and beyond that adds support for nested field search and aggregation.
Stars: ✭ 78 (-80.93%)
Mutual labels:  elasticsearch, plugin
Elasticsearch Thulac Plugin
thulac analysis plugin for elasticsearch
Stars: ✭ 129 (-68.46%)
Mutual labels:  elasticsearch, plugin
Prometheus Es Adapter
Prometheus remote storage adapter for Elasticsearch
Stars: ✭ 57 (-86.06%)
Mutual labels:  elasticsearch, prometheus
K8s
Important production-grade Kubernetes Ops Services
Stars: ✭ 253 (-38.14%)
Mutual labels:  elasticsearch, prometheus
Prometheus Es Exporter
Prometheus Elasticsearch Exporter
Stars: ✭ 184 (-55.01%)
Mutual labels:  elasticsearch, prometheus
Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (-82.4%)
Mutual labels:  elasticsearch, plugin
Helm Monitor
Monitor K8S Helm release, rollback on metrics behavior (Prometheus, Elasticsearch, Sentry)
Stars: ✭ 332 (-18.83%)
Mutual labels:  elasticsearch, prometheus
Graylog Plugin Metrics Reporter
Graylog Metrics Reporter Plugins
Stars: ✭ 71 (-82.64%)
Mutual labels:  elasticsearch, prometheus
Sentinl
Kibana Alert & Report App for Elasticsearch
Stars: ✭ 1,233 (+201.47%)
Mutual labels:  elasticsearch, plugin
Kubernetes Learning
《从Docker到Kubernetes进阶课程》在线文档
Stars: ✭ 1,128 (+175.79%)
Mutual labels:  elasticsearch, prometheus
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (-74.08%)
Mutual labels:  elasticsearch, prometheus
Elasticsearch Ukrainian Lemmatizer
Ukrainian lemmatizer plugin for ElasticSearch
Stars: ✭ 44 (-89.24%)
Mutual labels:  elasticsearch, plugin
Homer7 Docker
HOMER 7 Docker Images
Stars: ✭ 47 (-88.51%)
Mutual labels:  elasticsearch, prometheus
Emoji Search
😄 Emoji synonyms to build your own emoji-capable search engine (elasticsearch, solr)
Stars: ✭ 184 (-55.01%)
Mutual labels:  elasticsearch, plugin
Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: ✭ 292 (-28.61%)
Mutual labels:  elasticsearch, prometheus

CI

Prometheus Exporter Plugin for Elasticsearch

This is a builtin exporter from Elasticsearch to Prometheus. It collects all relevant metrics and makes them available to Prometheus via the Elasticsearch REST API.

Currently, the available metrics are:

  • Cluster status
  • Nodes status:
    • JVM
    • Indices (global)
    • Transport
    • HTTP
    • Scripts
    • Process
    • Operating System
    • File System
    • Circuit Breaker
  • Indices status
  • Cluster settings (selected disk allocation settings only)

Compatibility matrix

Version 7.X

Elasticsearch Plugin Release date
7.11.1 7.11.1.0 Feb 22, 2021
7.10.2 7.10.2.0 Jan 24, 2021
7.10.1 7.10.1.0 Dec 13, 2020
7.10.0 7.10.0.0 Nov 15, 2020
7.9.3 7.9.3.0 Oct 22, 2020
7.9.2 7.9.2.0 Oct 04, 2020
7.9.1 7.9.1.0 Sep 06, 2020
7.9.0 7.9.0.0 Aug 18, 2020
7.8.1 7.8.1.0 Aug 10, 2020
7.8.0 7.8.0.0 Jun 22, 2020
7.7.1 7.7.1.0 Jun 04, 2020
7.7.0 7.7.0.0 May 14, 2020
7.6.2 7.6.2.0 Apr 6, 2020
7.6.1 7.6.1.0 Mar 30, 2020
7.6.0 7.6.0.0 Feb 12, 2020
7.5.2 7.5.2.0 Jan 25, 2020
7.5.1 7.5.1.0 Jan 21, 2020
7.5.0 7.5.0.0 Jan 16, 2020
7.4.2 7.4.2.0 Jan 13, 2020
7.4.1 7.4.1.0 Jan 13, 2020
7.4.0 7.4.0.0 Jan 07, 2020
7.3.2 7.3.2.0 Oct 05, 2019
7.3.1 7.3.1.0 Sep 18, 2019
7.3.0 7.3.0.0 Sep 17, 2019
7.2.1 7.2.1.0 Jul 31, 2019
7.2.0 7.2.0.0 Jul 12, 2019
7.1.1 7.1.1.0 May 31, 2019
7.1.0 7.1.0.0 May 23, 2019
7.0.1 7.0.1.0 May 08, 2019
7.0.0 7.0.0.0 Apr 11, 2019

Install

./bin/elasticsearch-plugin install -b https://github.com/vvanholl/elasticsearch-prometheus-exporter/releases/download/7.11.1.0/prometheus-exporter-7.11.1.0.zip

Do not forget to restart the node after the installation!

Note that the plugin needs the following special permissions:

  • java.lang.RuntimePermission accessClassInPackage.sun.misc
  • java.lang.RuntimePermission accessDeclaredMembers
  • java.lang.reflect.ReflectPermission suppressAccessChecks

If you have a lot of indices and think this data is irrelevant, you can disable in the main configuration file:

prometheus.indices: false

To disable exporting cluster settings use:

prometheus.cluster.settings: false

These settings can be also updated dynamically.

Uninstall

./bin/elasticsearch-plugin remove prometheus-exporter

Do not forget to restart the node after installation!

Usage

Metrics are directly available at:

http://<your-elasticsearch-host>:9200/_prometheus/metrics

As a sample result, you get:

# HELP es_process_mem_total_virtual_bytes Memory used by ES process
# TYPE es_process_mem_total_virtual_bytes gauge
es_process_mem_total_virtual_bytes{cluster="develop",node="develop01",} 3.626733568E9
# HELP es_indices_indexing_is_throttled_bool Is indexing throttling ?
# TYPE es_indices_indexing_is_throttled_bool gauge
es_indices_indexing_is_throttled_bool{cluster="develop",node="develop01",} 0.0
# HELP es_jvm_gc_collection_time_seconds Time spent for GC collections
# TYPE es_jvm_gc_collection_time_seconds counter
es_jvm_gc_collection_time_seconds{cluster="develop",node="develop01",gc="old",} 0.0
es_jvm_gc_collection_time_seconds{cluster="develop",node="develop01",gc="young",} 0.0
# HELP es_indices_requestcache_memory_size_bytes Memory used for request cache
# TYPE es_indices_requestcache_memory_size_bytes gauge
es_indices_requestcache_memory_size_bytes{cluster="develop",node="develop01",} 0.0
# HELP es_indices_search_open_contexts_number Number of search open contexts
# TYPE es_indices_search_open_contexts_number gauge
es_indices_search_open_contexts_number{cluster="develop",node="develop01",} 0.0
# HELP es_jvm_mem_nonheap_used_bytes Memory used apart from heap
# TYPE es_jvm_mem_nonheap_used_bytes gauge
es_jvm_mem_nonheap_used_bytes{cluster="develop",node="develop01",} 5.5302736E7

...

Configure the Prometheus target

On your Prometheus servers, configure a new job as usual.

For example, if you have a cluster of 3 nodes:

- job_name: elasticsearch
  scrape_interval: 10s
  metrics_path: "/_prometheus/metrics"
  static_configs:
  - targets:
    - node1:9200
    - node2:9200
    - node3:9200

Of course, you could use the service discovery service instead of a static config.

Just keep in mind that metrics_path must be /_prometheus/metrics, otherwise Prometheus will find no metric.

Project sources

The Maven project site is available at GitHub.

Testing

Project contains integration tests implemented using rest layer framework.

To run everything similar to the gitlab pipeline you can do:

docker run -v $(pwd):/home/gradle gradle:6.6.0-jdk14 su gradle -c 'gradle check'

NOTE: Please keep version in sync with .gitlab-ci.yml

Complete test suite is run using:

gradle clean check

To run individual test file use:

gradle :integTest \
  -Dtests.class=org.elasticsearch.rest.PrometheusRestHandlerClientYamlTestSuiteIT \
  -Dtests.method="test {yaml=resthandler/20_metrics/Prometheus metrics can be pulled}"

Credits

This plugin mainly uses the Prometheus JVM Client.

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].