mirror of
https://github.com/captn3m0/prometheus-act-exporter.git
synced 2024-09-27 19:23:07 +00:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const http = require("http");
|
|
const port = 3000;
|
|
const metrics = require("./index");
|
|
const promFormatter = require("./prom");
|
|
|
|
CACHE = {};
|
|
|
|
const requestHandler = async (req, res) => {
|
|
let date = new Date(Date.now()).toLocaleString();
|
|
console.log(`${date}: ${req.url}`);
|
|
switch (req.url) {
|
|
case "/metrics":
|
|
res.setHeader("Content-Type", promFormatter.contentType);
|
|
metrics.getUsage().then(
|
|
(data) => {
|
|
console.log(data);
|
|
console.log("Setting cache");
|
|
CACHE = data;
|
|
promFormatter.format(data).then((data) => {
|
|
res.end(data);
|
|
});
|
|
},
|
|
(err) => {
|
|
console.log(err);
|
|
console.log("Got error, using cache");
|
|
console.log(CACHE);
|
|
promFormatter.format(CACHE).then((data) => {
|
|
res.end(data);
|
|
});
|
|
}
|
|
);
|
|
break;
|
|
default:
|
|
res.writeHead(302, {
|
|
Location: "https://github.com/captn3m0/prometheus-act-exporter",
|
|
});
|
|
res.end();
|
|
break;
|
|
}
|
|
};
|
|
|
|
const server = http.createServer(requestHandler);
|
|
|
|
server.listen(port, (err) => {
|
|
if (err) {
|
|
return console.log("could not initialize web server", err);
|
|
}
|
|
|
|
console.log(`server is listening on ${port}`);
|
|
});
|