Display Uptime in Servers Page

This commit is contained in:
headlessdev 2025-04-26 15:21:20 +02:00
parent b08d5b0fef
commit a84a985645
2 changed files with 12 additions and 2 deletions

View File

@ -11,6 +11,7 @@ export async function GET() {
cpuUsage: true, cpuUsage: true,
ramUsage: true, ramUsage: true,
diskUsage: true, diskUsage: true,
uptime: true
} }
}); });
@ -20,12 +21,14 @@ export async function GET() {
cpuUsage: string | null; cpuUsage: string | null;
ramUsage: string | null; ramUsage: string | null;
diskUsage: string | null; diskUsage: 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 ? parseInt(server.cpuUsage) : 0,
ramUsage: server.ramUsage ? parseInt(server.ramUsage) : 0, ramUsage: server.ramUsage ? parseInt(server.ramUsage) : 0,
diskUsage: server.diskUsage ? parseInt(server.diskUsage) : 0 diskUsage: server.diskUsage ? parseInt(server.diskUsage) : 0,
uptime: server.uptime ? parseInt(server.uptime) : 0
})); }));
return NextResponse.json(monitoringData) return NextResponse.json(monitoringData)

View File

@ -99,6 +99,7 @@ interface Server {
diskUsage: number; diskUsage: number;
history?: ServerHistory; history?: ServerHistory;
port: number; port: number;
uptime: number;
} }
interface GetServersResponse { interface GetServersResponse {
@ -113,6 +114,7 @@ interface MonitoringData {
cpuUsage: number cpuUsage: number
ramUsage: number ramUsage: number
diskUsage: number diskUsage: number
uptime: number
} }
export default function Dashboard() { export default function Dashboard() {
@ -1021,8 +1023,13 @@ export default function Dashboard() {
> >
<CardHeader> <CardHeader>
{server.monitoring && ( {server.monitoring && (
<div className="absolute top-4 right-4"> <div className="absolute top-4 right-4 flex flex-col items-end">
<StatusIndicator isOnline={server.online} /> <StatusIndicator isOnline={server.online} />
{server.online && server.uptime && (
<span className="text-xs text-muted-foreground mt-1">
{server.online ? `since ${server.uptime}` : 'offline'}
</span>
)}
</div> </div>
)} )}
<div className="flex items-center justify-between w-full"> <div className="flex items-center justify-between w-full">