Skip to content

Hash-Ring HTTP Proxy for Aggregated Observability Queries across multiple servers

License

Notifications You must be signed in to change notification settings

metrico/aggressio

 
 

Repository files navigation

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 for Aggregated Observability Queries across multiple servers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 94.4%
  • Dockerfile 5.6%