lmangani / aggressio

Hash-Ring HTTP Proxy to run aggregated queries across multiple JSON APIs

Home Page:http://qryn.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CodeQL

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

About

Hash-Ring HTTP Proxy to run aggregated queries across multiple JSON APIs

http://qryn.dev

License:MIT License


Languages

Language:JavaScript 94.4%Language:Dockerfile 5.6%