Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lmangani/aggressio

Hash-Ring HTTP Proxy to run aggregated queries across multiple JSON APIs
https://github.com/lmangani/aggressio

aggregation clustering distributed ha ifql influx influxdb loki qryn query read telegraf

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

[![CodeQL](https://github.com/lmangani/aggressio/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/lmangani/aggressio/actions/workflows/codeql-analysis.yml)

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