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[],
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;

View File

@ -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 || ""
}));

15
package-lock.json generated
View File

@ -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"
}
}
}
}