# 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