prometheus-act-exporter/server.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-06-03 18:29:52 +00:00
const http = require('http');
const port = 3000;
const metrics = require('./index');
2018-06-30 21:36:22 +00:00
const promFormatter = require('./prom');
2018-06-04 10:27:52 +00:00
2021-07-03 17:34:24 +00:00
CACHE = {}
2018-06-04 05:36:02 +00:00
const requestHandler = async (req, res) => {
let date = new Date(Date.now()).toLocaleString();
console.log(`${date}: ${req.url}`);
switch (req.url) {
case '/metrics':
2018-06-30 21:36:22 +00:00
res.setHeader('Content-Type', promFormatter.contentType);
2021-07-03 17:34:24 +00:00
metrics.getUsage().then(data=>{
console.log(data)
console.log("Setting cache")
CACHE = data
res.end(promFormatter.format(data));
}, err =>{
console.log(err)
console.log("Got error, using cache")
console.log(CACHE)
res.end(promFormatter.format(CACHE))
})
2018-06-04 05:36:02 +00:00
break;
default:
2018-06-04 07:50:44 +00:00
res.writeHead(302, {
Location:
2018-06-06 09:59:56 +00:00
'https://git.captnemo.in/nemo/prometheus-act-exporter',
2018-06-04 07:50:44 +00:00
});
res.end();
2018-06-04 05:36:02 +00:00
break;
}
};
2018-06-03 18:29:52 +00:00
2018-06-04 05:36:02 +00:00
const server = http.createServer(requestHandler);
2018-06-03 18:29:52 +00:00
2018-06-04 05:36:02 +00:00
server.listen(port, err => {
if (err) {
2018-06-30 21:36:22 +00:00
return console.log('could not initialize web server', err);
2018-06-04 05:36:02 +00:00
}
2018-06-03 18:29:52 +00:00
2018-06-04 05:36:02 +00:00
console.log(`server is listening on ${port}`);
});