vps/nix/modules/prometheus/prometheus-exporter-std-internal-docs.mjs

38 lines
1.2 KiB
JavaScript

import http from "node:http";
const server = http.createServer();
server
.on("request", (req, res) => {
fetch(
"https://api.github.com/repos/Noratrieb/std-internal-docs/deployments"
)
.then(async (res) => {
console.log(`Received response from GitHub: ${res.status}`);
if (res.ok) {
return res.json();
} else {
console.error(
`Received error from GitHub: ${res.status}: ${await res.text()}`
);
}
})
.then((body) => {
console.log(`Received body from GitHub`);
const time =
body?.[0]?.created_at && new Date(body[0].created_at).getTime();
res
.writeHead(time ? 200 : 500, {
"Content-Type":
"text/plain; version=0.0.4; charset=utf-8; escaping=underscores",
})
.end(
time
? `std_internal_docs_last_deployment ${time}\n` +
`std_internal_docs_last_deployment_age ${new Date().getTime() - time}\n`
: undefined
);
});
})
.listen(7846, "127.0.0.1", () => {
console.log("Started the std.noratrieb.dev status exporter, lol");
});