Update API Routes to include Temp & GPU Data

This commit is contained in:
headlessdev 2025-04-28 20:12:46 +02:00
parent 934768fec8
commit c9f1d32038
3 changed files with 42 additions and 3 deletions

View File

@ -132,6 +132,8 @@ export async function POST(request: NextRequest) {
cpu: number[], cpu: number[],
ram: number[], ram: number[],
disk: number[], disk: number[],
gpu: number[],
temp: number[],
online: boolean[] online: boolean[]
}>(); }>();
@ -142,6 +144,8 @@ export async function POST(request: NextRequest) {
cpu: [], cpu: [],
ram: [], ram: [],
disk: [], disk: [],
gpu: [],
temp: [],
online: [] online: []
}); });
}); });
@ -167,6 +171,8 @@ export async function POST(request: NextRequest) {
interval.cpu.push(parseUsageValue(record.cpuUsage)); interval.cpu.push(parseUsageValue(record.cpuUsage));
interval.ram.push(parseUsageValue(record.ramUsage)); interval.ram.push(parseUsageValue(record.ramUsage));
interval.disk.push(parseUsageValue(record.diskUsage)); interval.disk.push(parseUsageValue(record.diskUsage));
interval.gpu.push(parseUsageValue(record.gpuUsage));
interval.temp.push(parseUsageValue(record.temp));
interval.online.push(record.online); interval.online.push(record.online);
} }
}); });
@ -178,6 +184,8 @@ export async function POST(request: NextRequest) {
cpu: [], cpu: [],
ram: [], ram: [],
disk: [], disk: [],
gpu: [],
temp: [],
online: [] online: []
}; };
@ -189,6 +197,8 @@ export async function POST(request: NextRequest) {
cpu: average(data.cpu), cpu: average(data.cpu),
ram: average(data.ram), ram: average(data.ram),
disk: average(data.disk), disk: average(data.disk),
gpu: average(data.gpu),
temp: average(data.temp),
online: data.online.length ? online: data.online.length ?
data.online.filter(Boolean).length / data.online.length >= 0.5 data.online.filter(Boolean).length / data.online.length >= 0.5
: null : null
@ -221,6 +231,14 @@ export async function POST(request: NextRequest) {
const data = historyMap.get(d.toISOString())?.disk || []; const data = historyMap.get(d.toISOString())?.disk || [];
return data.length ? Math.round((data.reduce((a, b) => a + b) / data.length) * 100) / 100 : null; 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 => { online: intervals.map(d => {
const data = historyMap.get(d.toISOString())?.online || []; const data = historyMap.get(d.toISOString())?.online || [];
return data.length ? data.filter(Boolean).length / data.length >= 0.5 : null; return data.length ? data.filter(Boolean).length / data.length >= 0.5 : null;

View File

@ -11,6 +11,8 @@ export async function GET() {
cpuUsage: true, cpuUsage: true,
ramUsage: true, ramUsage: true,
diskUsage: true, diskUsage: true,
gpuUsage: true,
temp: true,
uptime: true uptime: true
} }
}); });
@ -21,13 +23,17 @@ export async function GET() {
cpuUsage: string | null; cpuUsage: string | null;
ramUsage: string | null; ramUsage: string | null;
diskUsage: string | null; diskUsage: string | null;
gpuUsage: string | null;
temp: string | null;
uptime: string | null; uptime: string | null;
}) => ({ }) => ({
id: server.id, id: server.id,
online: server.online, online: server.online,
cpuUsage: server.cpuUsage ? parseInt(server.cpuUsage) : 0, cpuUsage: server.cpuUsage ? parseFloat(server.cpuUsage) : 0,
ramUsage: server.ramUsage ? parseInt(server.ramUsage) : 0, ramUsage: server.ramUsage ? parseFloat(server.ramUsage) : 0,
diskUsage: server.diskUsage ? parseInt(server.diskUsage) : 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 || "" uptime: server.uptime || ""
})); }));

15
package-lock.json generated
View File

@ -5073,6 +5073,21 @@
"optional": true "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"
}
} }
} }
} }