Add connections to status

This commit is contained in:
Ajay
2024-04-16 00:13:51 -04:00
parent b934b7a937
commit 07d4dde4f6
2 changed files with 10 additions and 6 deletions

View File

@@ -81,13 +81,15 @@ export function createServer(callback: () => void): Server {
// Set production mode
app.set("env", config.mode || "production");
setupRoutes(router);
const server = app.listen(config.port, callback);
return app.listen(config.port, callback);
setupRoutes(router, server);
return server;
}
/* eslint-disable @typescript-eslint/no-misused-promises */
function setupRoutes(router: Router) {
function setupRoutes(router: Router, server: Server) {
// Rate limit endpoint lists
const voteEndpoints: RequestHandler[] = [voteOnSponsorTime];
const viewEndpoints: RequestHandler[] = [viewedVideoSponsorTime];
@@ -200,8 +202,8 @@ function setupRoutes(router: Router) {
router.get("/api/chapterNames", getChapterNames);
// get status
router.get("/api/status/:value", getStatus);
router.get("/api/status", getStatus);
router.get("/api/status/:value", (req, res) => getStatus(req, res, server));
router.get("/api/status", (req, res) => getStatus(req, res, server));
router.get("/api/youtubeApiProxy", youtubeApiProxy);
// get user category stats

View File

@@ -5,8 +5,9 @@ import os from "os";
import redis, { getRedisStats } from "../utils/redis";
import { promiseOrTimeout } from "../utils/promise";
import { Postgres } from "../databases/Postgres";
import { Server } from "http";
export async function getStatus(req: Request, res: Response): Promise<Response> {
export async function getStatus(req: Request, res: Response, server: Server): Promise<Response> {
const startTime = Date.now();
let value = req.params.value as string[] | string;
value = Array.isArray(value) ? value[0] : value;
@@ -42,6 +43,7 @@ export async function getStatus(req: Request, res: Response): Promise<Response>
processTime,
redisProcessTime,
loadavg: os.loadavg().slice(1), // only return 5 & 15 minute load average
connections: await new Promise((resolve) => server.getConnections((_, count) => resolve(count))),
statusRequests,
hostname: os.hostname(),
postgresStats: (db as Postgres)?.getStats?.(),