aggressio

Response Aggregating Multi-Target HTTP Proxy

Usage no npm install needed!

<script type="module">
  import aggressio from 'https://cdn.skypack.dev/aggressio';
</script>

README

Response Aggregating HTTP Proxy for Timeseries APIs & Friends

Motivation

Aggress-IO distributes queries across multiple API targets, aggregating results into a unique response.
It has been tested with InfluxDB, Clickhouse and Loki.

Options

Aggress-IO can use either of the following modes to accomodate the preferred response aggregation method:

  • concat
  • combine
  • replace

Usage

global

npm install -g aggressio
SERVERS=http://loki1:3100,http://loki2:3100 PORT=3100 MODE=concat aggressio
npm

To start manually, populate the ENV variables as per example and run:

SERVERS=http://influxdb1:8086,http://influxdb2:8086 PORT=9999 MODE=concat npm start
pm2

To manage the service using PM2, edit the aggressio.config.js file with the ENV variables and run:

pm2 [start|restart|stop|delete] aggressio.config.js
docker

To start using Docker, populate the ENV variables as per example and run:

sudo docker run \ 
-e SERVERS=http://influxdb1:8086,http://infludb2:8086 \
-e PORT=8089 \
-e MODE=concat \
-p 8089
--rm  qxip/aggressio:latest

Diagram