added prometheus default metrics to /metrics

This commit is contained in:
timelesnesses 2024-04-17 01:59:29 +07:00
parent bf1dbe1ad8
commit 51fb110ce6
No known key found for this signature in database
GPG Key ID: 85E31BB232268F65
3 changed files with 13 additions and 0 deletions

3
.gitignore vendored
View File

@ -24,3 +24,6 @@ docker-compose.yml
# cookie file # cookie file
cookies.json cookies.json
# pnpm
pnpm-lock.yaml

View File

@ -30,12 +30,14 @@
"dotenv": "^16.0.1", "dotenv": "^16.0.1",
"esbuild": "^0.14.51", "esbuild": "^0.14.51",
"express": "^4.18.1", "express": "^4.18.1",
"express-prometheus-middleware": "^1.2.0",
"express-rate-limit": "^6.3.0", "express-rate-limit": "^6.3.0",
"ffmpeg-static": "^5.1.0", "ffmpeg-static": "^5.1.0",
"hls-parser": "^0.10.7", "hls-parser": "^0.10.7",
"ipaddr.js": "2.1.0", "ipaddr.js": "2.1.0",
"nanoid": "^4.0.2", "nanoid": "^4.0.2",
"node-cache": "^5.1.2", "node-cache": "^5.1.2",
"prom-client": "^15.1.2",
"psl": "1.9.0", "psl": "1.9.0",
"set-cookie-parser": "2.6.0", "set-cookie-parser": "2.6.0",
"undici": "^6.7.0", "undici": "^6.7.0",

View File

@ -1,6 +1,7 @@
import cors from "cors"; import cors from "cors";
import rateLimit from "express-rate-limit"; import rateLimit from "express-rate-limit";
import { randomBytes } from "crypto"; import { randomBytes } from "crypto";
import expressPrometheusMiddleware from "express-prometheus-middleware";
const ipSalt = randomBytes(64).toString('hex'); const ipSalt = randomBytes(64).toString('hex');
@ -65,6 +66,13 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) {
next(); next();
}); });
app.use(expressPrometheusMiddleware({
metricsPath: "/metrics",
collectDefaultMetrics: true,
collectGCMetrics: true,
metricsApp: app,
}))
app.use('/api/json', express.json({ app.use('/api/json', express.json({
verify: (req, res, buf) => { verify: (req, res, buf) => {
let acceptCon = String(req.header('Accept')) === "application/json"; let acceptCon = String(req.header('Accept')) === "application/json";