prometheus-act-exporter/server.js

36 lines
1.0 KiB
JavaScript

const http = require('http');
const port = 3000;
const pClient = require('prom-client');
const metrics = require('./index');
const collectDefaultMetrics = pClient.collectDefaultMetrics;
const requestHandler = (req, res) => {
switch(req.url) {
case '/metrics':
metrics.getUsage((metrics) => {
let usedGauge = new pClient.Gauge({ name: 'act_fup_usage_gigabytes_total', help: 'ACT current usage in GB' });
usedGauge.set(metrics.used);
let totalGauge = new pClient.Gauge({ name: 'act_fup_max_gigabytes_total', help: 'ACT FUP limit in GB' });
totalGauge.set(metrics.total)
let register = pClient.register;
res.set('Content-Type', register.contentType);
res.end(register.metrics());
});
break;
default:
break;
}
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})