diff --git a/app/api/servers/get/route.ts b/app/api/servers/get/route.ts index 08533c7..ac17d42 100644 --- a/app/api/servers/get/route.ts +++ b/app/api/servers/get/route.ts @@ -132,6 +132,8 @@ export async function POST(request: NextRequest) { cpu: number[], ram: number[], disk: number[], + gpu: number[], + temp: number[], online: boolean[] }>(); @@ -142,6 +144,8 @@ export async function POST(request: NextRequest) { cpu: [], ram: [], disk: [], + gpu: [], + temp: [], online: [] }); }); @@ -167,6 +171,8 @@ export async function POST(request: NextRequest) { interval.cpu.push(parseUsageValue(record.cpuUsage)); interval.ram.push(parseUsageValue(record.ramUsage)); interval.disk.push(parseUsageValue(record.diskUsage)); + interval.gpu.push(parseUsageValue(record.gpuUsage)); + interval.temp.push(parseUsageValue(record.temp)); interval.online.push(record.online); } }); @@ -178,6 +184,8 @@ export async function POST(request: NextRequest) { cpu: [], ram: [], disk: [], + gpu: [], + temp: [], online: [] }; @@ -189,6 +197,8 @@ export async function POST(request: NextRequest) { cpu: average(data.cpu), ram: average(data.ram), disk: average(data.disk), + gpu: average(data.gpu), + temp: average(data.temp), online: data.online.length ? data.online.filter(Boolean).length / data.online.length >= 0.5 : null @@ -221,6 +231,14 @@ export async function POST(request: NextRequest) { const data = historyMap.get(d.toISOString())?.disk || []; return data.length ? Math.round((data.reduce((a, b) => a + b) / data.length) * 100) / 100 : null; }), + gpu: intervals.map(d => { + const data = historyMap.get(d.toISOString())?.gpu || []; + return data.length ? Math.round((data.reduce((a, b) => a + b) / data.length) * 100) / 100 : null; + }), + temp: intervals.map(d => { + const data = historyMap.get(d.toISOString())?.temp || []; + return data.length ? Math.round((data.reduce((a, b) => a + b) / data.length) * 100) / 100 : null; + }), online: intervals.map(d => { const data = historyMap.get(d.toISOString())?.online || []; return data.length ? data.filter(Boolean).length / data.length >= 0.5 : null; diff --git a/app/api/servers/monitoring/route.ts b/app/api/servers/monitoring/route.ts index a6b3d7d..2a905d5 100644 --- a/app/api/servers/monitoring/route.ts +++ b/app/api/servers/monitoring/route.ts @@ -11,6 +11,8 @@ export async function GET() { cpuUsage: true, ramUsage: true, diskUsage: true, + gpuUsage: true, + temp: true, uptime: true } }); @@ -21,13 +23,17 @@ export async function GET() { cpuUsage: string | null; ramUsage: string | null; diskUsage: string | null; + gpuUsage: string | null; + temp: string | null; uptime: string | null; }) => ({ id: server.id, online: server.online, - cpuUsage: server.cpuUsage ? parseInt(server.cpuUsage) : 0, - ramUsage: server.ramUsage ? parseInt(server.ramUsage) : 0, - diskUsage: server.diskUsage ? parseInt(server.diskUsage) : 0, + cpuUsage: server.cpuUsage ? parseFloat(server.cpuUsage) : 0, + ramUsage: server.ramUsage ? parseFloat(server.ramUsage) : 0, + diskUsage: server.diskUsage ? parseFloat(server.diskUsage) : 0, + gpuUsage: server.gpuUsage ? parseFloat(server.gpuUsage) : 0, + temp: server.temp ? parseFloat(server.temp) : 0, uptime: server.uptime || "" })); diff --git a/package-lock.json b/package-lock.json index 0494041..e7b3393 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5073,6 +5073,21 @@ "optional": true } } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.0.tgz", + "integrity": "sha512-vHUQS4YVGJPmpjn7r5lEZuMhK5UQBNBRSB+iGDvJjaNk649pTIcRluDWNb9siunyLLiu/LDPHfvxBtNamyuLTw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } }