Skip to content

PromEL - A prometheus remote storage adapter into ElasticSearch

License

Notifications You must be signed in to change notification settings

uzhinskiy/PromEL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PromEL - Elasticsearch Prometheus Adapter

INTRODUCTION

This is an adapter that accepts Prometheus remote read/write requests, and sends them on to Elasticsearch. This allows using Elasticsearch as long term storage for Prometheus.

Requires Elasticsearch v7.0 or greater.

INSTALL

To install PromEL on Linux use the following commands:

$ git clone https://github.com/uzhinskiy/PromEL.git promel
$ cd promel
$ make

To install PromEL on Windows use the following instructions:

  • Install GO v1.11 or higher
  • Download ZIP with source files
  • Unpack this file in your prefered path
  • Run CMD.EXE
  • In CMD go to unpacked dir <SOME\PATH>\PromEL-master
  • Run : go build -x -ldflags "-s -w -X main.vBuild=WIN" -o build/promel.exe ./cmd/

USAGE

Standalone

$ sudo mkdir /var/log/promel/
$ sudo mkdir /etc/promel/
$ sudo cp ./build/promel /usr/local/sbin/promel
$ sudo cp ./scripts/promel.service /etc/systemd/system/
$ sudo cp ./scripts/promel-standalone.yml /etc/promel/promel.yml
$ edit /etc/promel/promel.yml (replace elk0X-ip with your actual IPs of elastic-nodes)
$ sudo systemctl daemon-reload && systemctl start promel
$ sudo systemctl enable promel

Docker

$ git clone https://github.com/uzhinskiy/PromEL.git promel
$ cd promel
$ edit /scripts/promel-docker.yml (replace elk0X-ip with your actual IPs of elastic-nodes)
$ docker build -t promel -f scripts/Dockerfile .
$ docker run -t -d -p 0.0.0.0:9090:9090 -p 0.0.0.0:9091:9091 --name promel-app promel

Tuning Linux kernel

$ sudo nano /etc/sysctl.conf
 net.ipv4.tcp_keepalive_time = 300
 net.ipv4.tcp_keepalive_intvl = 20
 net.ipv4.tcp_keepalive_probes = 3
 fs.file-max = 1199136

$ sudo sysctl -p

Peak load ~ 12000 doc/sec Normal load ~ 1000 doc/sec