OHS Solar Racing Club data exporter for Prometheus and Grafana.
SRC Exporter receives data steams from API endpoints and converts them to Prometheus readable metrics. It is strongly recommended to run the exporter in a Docker Container.
Run SRC Exporter in a Docker Container with the following command:
docker run -p 8090:8080 --name src-exporter -d ghcr.io/okemossrc/src_exporter:main
The SRC Exporter metrics will be available at http://localhost:8090/metrics
To submit sinusoidal sample data streams to the SRC Exporter for testing, add the API endpoint URL and the authorization
token to the test.js
file.
Example:
const config = {
token: "A0b1C2d3E4f5G6", // replace with your token
endpoint_url: "https://example.com" // replace with your endpoint url
// excluding any directory paths but including the protocol (http:// or https://).
}
and execute the following command:
npm test
# or node test.js
The sample data generator will then submit sinusoidal data to the SRC Exporter.
Hashes of some tokens are stored in the lib/hashes.txt
file.
Token - Hash pairs can be generated with the following code:
const {generate_token, hash_token} = require('./lib/auth.js');
const fs = require('fs');
function generate_token_hash_pairs() {
const token = generate_token();
fs.appendFileSync('lib/tokens.txt', token + '\n');
fs.appendFileSync('lib/hashes.txt', hash_token(token) + '\n');
}
generate_token_hash_pairs();
Although not recommended, it is possible to run the SRC Exporter without Docker.
git clone https://github.com/OkemosSRC/SRC_Exporter.git
cd SRC_Exporter
npm install
npm start
The SRC Exporter metrics will be available at http://localhost:8090/metrics
After starting the SRC Exporter, you need to configure Prometheus to scrape the SRC Exporter metrics.
Append the following lines to your prometheus.yml
file, under the scrape_configs
section:
- job_name: src_exporter
static_configs:
- targets: [ 'localhost:8090' ]
Then, restart Prometheus:
sudo systemctl restart prometheus
An importable Grafana dashboard json file can be found here.
Grafana must be configured to work with Prometheus first. A detailed guide can be found here.