Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/hastic/hastic

Hastic standalone
https://github.com/hastic/hastic

analytics influxdb monitoring prometheus timeseries

Last synced: about 1 month ago
JSON representation

Hastic standalone

Awesome Lists containing this project

README

        

THE DEVELOPMENT OF THIS REPO MOVED To [https://code.corpglory.net/hastic/hastic](https://code.corpglory.net/hastic/hastic)

(**_because fuck github_**)

# Hastic

Hastic needs [Prometheus](https://prometheus.io/) or [InfluxDB](https://www.influxdata.com/get-influxdb/)
instance for getting metrics.

## Build from source (Linux)

### Prerequirements
1. [Install cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) (required version: >=1.49)
2. Install [node.js >=10.x](https://nodejs.org/en/download/)
3. Install [yarn](https://classic.yarnpkg.com/lang/en/docs/install)
4. Install x86_64-unknown-linux-musl: `rustup target add x86_64-unknown-linux-musl`
5. musl-tools: `sudo apt install musl-tools`

### Build
```
make
```

### Configure
Hastic can be configured using config-file or environment variables.

At first, choose which datasource you'll be using: `prometheus` or `influx`. Only one can be used at a time.

#### Config-file
- copy the config example to the release directory:
```bash
cp config.example.toml release/config.toml
```
- edit the config file, e.g. using `nano`:
```bash
nano release/config.toml
```

#### Environment variables
All config fields are also available as environment variables with `HASTIC_` prefix

Variable name structure:
- for high-level fields: `HASTIC_`, e.g. `HASTIC_PORT`
- for nested fields: `HASTIC___`, e.g. `HASTIC_PROMETHEUS__URL`

Environment variables can be set either by exporting them (they'll be actual until a bash-session is closed):
```bash
export HASTIC_PORT=8000
export HASTIC_PROMETHEUS__URL=http://localhost:9090
export HASTIC_PROMETHEUS__QUERY=rate(go_memstats_alloc_bytes_total[5m])
```

or specifing them in a run command (they'll be actual only for one run):
```bash
HASTIC_PORT=8000 HASTIC_PROMETHEUS__URL=http://localhost:9090 HASTIC_PROMETHEUS__QUERY=rate(go_memstats_alloc_bytes_total[5m]) ./release/hastic
```

### Run

```
cd release
./hastic
```

open `http://localhost:4347` in browser