36 lines
1.0 KiB
JavaScript
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}`)
|
||
|
})
|