diff --git a/src/api/Server.ts b/src/api/Server.ts index a1edb986c..f9f1c708f 100644 --- a/src/api/Server.ts +++ b/src/api/Server.ts @@ -53,6 +53,7 @@ export class SpacebarServer extends Server { async start() { await Monitoring.init(); + Monitoring.attach(this.app); await initDatabase(); await Config.init(); await initEvent(); diff --git a/src/cdn/Server.ts b/src/cdn/Server.ts index 9327de836..8964161dc 100644 --- a/src/cdn/Server.ts +++ b/src/cdn/Server.ts @@ -37,6 +37,7 @@ export class CDNServer extends Server { async start() { await Monitoring.init(); + Monitoring.attach(this.app); await initDatabase(); await Config.init(); diff --git a/src/util/monitoring/Monitoring.ts b/src/util/monitoring/Monitoring.ts index 3d6d4ed47..9b668fcd1 100644 --- a/src/util/monitoring/Monitoring.ts +++ b/src/util/monitoring/Monitoring.ts @@ -18,6 +18,7 @@ import * as client from "prom-client"; import { Router } from "express"; +import http, { IncomingMessage, ServerResponse } from "node:http"; export class Monitoring { static isInitialised = false; @@ -35,4 +36,9 @@ export class Monitoring { res.send(metrics); }); } + + static async handleRawRequest(req: IncomingMessage, res: ServerResponse) { + const metrics = await client.register.metrics(); + res.setHeader("Content-Type", client.register.contentType).writeHead(200).end(metrics); + } }