Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/lmangani/aggressio
- Owner: lmangani
- License: mit
- Created: 2019-08-04T00:53:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-12T19:38:59.000Z (6 months ago)
- Last Synced: 2024-10-24T02:20:40.291Z (3 months ago)
- Topics: aggregation, clustering, distributed, ha, ifql, influx, influxdb, loki, qryn, query, read, telegraf
- Language: JavaScript
- Homepage: http://qryn.dev
- Size: 328 KB
- Stars: 8
- Watchers: 5
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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