Public | Automated Build

Last pushed: 17 days ago
Short Description
RESTFull service indexing time series events in Elasticsearch
Full Description

What is espipe?

espipe is a service indexing documents in bulk requests to Elasticsearch.



docker run -p 5000:5000 -v /etc/espipe:/etc/espipe khezen/espipe:6

Supported tags and respective Dockerfile links


Request Response Description
POST /espipe/{templateName}/{documentType} JSON body 200 OK indexes JSON body as {documentType} in Elasticsearch {}-yyyy.MM.dd
GET /espipe/health 200 OK healthcheck


  "redis": {},
  "elasticsearch": {}


Redis is disabled by default in which case buffer is stored in memory.

  "redis": {
    "enabled": true,
    "password": "changeme",


  "elasticsearch": {
    "templates": [{
      "name": "logs",
      "flushPeriodMS": 5000,
      "body": {...}


  • espipe creates index templates in elasticsearch if they do not exist yet
  • for each template, espipe creates indices on daily basis
    • template=logs-*,
    • indices=logs-2017.01.05, logs-2017.01.06, etc..
  • For each index, espipe triggers bulk requests every flushPeriodMS


template.body takes the template settings and mappings with types definition.
See the Create Template API documentation.

The mapping itself is flexible and is schema-free. New fields are automatically added to the type mapping definition when espipe indexes a new document. Check out the mapping section for more information on mapping definitions.

AWS Sign

espipe supports AWS authentication for Amazon Elasticsearch Service

"elasticsearch": {
  "AWSAuth": {
    "accessKeyId": "changeme",
    "secretAccessKey": "changeme",
    "region": "eu-west-1"
  "templates": [...]

Basic Auth

espipe supports basic authentication for Elasticsearch (shield, search-guard)

"elasticsearch": {
  "address": "http://localhost:9200",
    "username": "elastic",
    "password": "changeme"
  "templates": [...]

Default config.json

Request Response Description
POST /espipe/logs/log JSON body 200 OK indexes JSON body as log in Elasticsearch logs-yyyy.MM.dd
POST /espipe/web/trace JSON body 200 OK indexes JSON body as trace in Elasticsearch web-yyyy.MM.dd
GET /espipe/health 200 OK healthcheck

User Feedback


If you have any problems or questions, please ask for help through a GitHub issue.

Docker Pull Command
Source Repository