diff --git a/.gitignore b/.gitignore index 72bde728..0971c531 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,6 @@ docker-compose.yml # cookie file cookies.json + +# pnpm-lock +pnpm-lock.yaml \ No newline at end of file diff --git a/api/core/endpoints.js b/api/core/endpoints.js index cf234f38..d7323cce 100644 --- a/api/core/endpoints.js +++ b/api/core/endpoints.js @@ -1,6 +1,7 @@ import cors from "cors"; import rateLimit from "express-rate-limit"; import { randomBytes } from "crypto"; +import expressPrometheusMiddleware from "express-prometheus-middleware"; const ipSalt = randomBytes(64).toString('hex'); @@ -59,6 +60,12 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) { app.use('/api/stream', apiLimiterStream); app.use('/api/onDemand', apiLimiter); + app.use(expressPrometheusMiddleware({ + metricsApp: app, + collectGCMetrics: true, + + })) + app.use((req, res, next) => { try { decodeURIComponent(req.path) } catch (e) { return res.redirect('/') } next(); diff --git a/api/package.json b/api/package.json index 75b398de..4a4d77ee 100644 --- a/api/package.json +++ b/api/package.json @@ -26,12 +26,14 @@ "dotenv": "^16.0.1", "esbuild": "^0.14.51", "express": "^4.18.1", + "express-prometheus-middleware": "^1.2.0", "express-rate-limit": "^6.3.0", "ffmpeg-static": "^5.1.0", "hls-parser": "^0.10.7", "ipaddr.js": "2.1.0", "nanoid": "^4.0.2", "node-cache": "^5.1.2", + "prom-client": "^15.1.2", "psl": "1.9.0", "set-cookie-parser": "2.6.0", "undici": "^6.7.0",