From e2da753c2dcfcb1b6243aafa0086a5c086ba654c Mon Sep 17 00:00:00 2001 From: Rory& Date: Wed, 20 May 2026 14:06:19 +0200 Subject: [PATCH] */Server.ts: Handle metrics requests --- src/api/Server.ts | 1 + src/cdn/Server.ts | 1 + src/util/monitoring/Monitoring.ts | 6 ++++++ 3 files changed, 8 insertions(+) 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); + } }