diff --git a/app/src/internal/system/routes/stats.ts b/app/src/internal/system/routes/stats.ts index 0cee562..c36a388 100644 --- a/app/src/internal/system/routes/stats.ts +++ b/app/src/internal/system/routes/stats.ts @@ -1,36 +1,40 @@ +import { format } from "date-fns-tz"; +import { eq } from "drizzle-orm"; import { Router } from "express"; -import { tryCatch } from "../../../pkg/utils/tryCatch.js"; import { db } from "../../../pkg/db/db.js"; import { - serverStats, - type ServerStats, + type ServerStats, + serverStats, } from "../../../pkg/db/schema/serverstats.js"; -import { eq } from "drizzle-orm"; -import { format } from "date-fns-tz"; +import { tryCatch } from "../../../pkg/utils/tryCatch.js"; import { checkBuildUpdate } from "../utlis/checkForBuild.js"; const router = Router(); // GET /health router.get("/", async (req, res) => { - const { data, error } = await tryCatch( - db.select().from(serverStats).where(eq(serverStats.id, "serverStats")) - ); + const { data, error } = await tryCatch( + db.select().from(serverStats).where(eq(serverStats.id, "serverStats")), + ); - if (error || !data) { - res.status(400).json({ error: error }); - } + if (error || !data) { + res.status(400).json({ error: error }); + } - const statData = data as ServerStats[]; - res.json({ - status: "ok", - uptime: process.uptime(), - build: statData[0]?.build, - pendingUpdateFile: await checkBuildUpdate(["."]), - lastUpdate: statData[0]?.lastUpdate - ? format(statData[0].lastUpdate, "MM/dd/yyyy HH:mm") - : "", - }); + const statData = data as ServerStats[]; + const used = process.memoryUsage(); + res.json({ + status: "ok", + uptime: process.uptime(), + build: statData[0]?.build, + pendingUpdateFile: await checkBuildUpdate(["."]), + lastUpdate: statData[0]?.lastUpdate + ? format(statData[0].lastUpdate, "MM/dd/yyyy HH:mm") + : "", + memoryUsage: `Heap: ${(used.heapUsed / 1024 / 1024).toFixed(2)} MB / RSS: ${( + used.rss / 1024 / 1024 + ).toFixed(2)} MB`, + }); }); export default router;