*/Server.ts: Handle metrics requests
3 files changed, 8 insertions, 0 deletions
diff --git a/src/api/Server.ts b/src/api/Server.ts
index a1edb986..f9f1c708 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 9327de83..8964161d 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 3d6d4ed4..9b668fcd 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);
+ }
}
|