diff --git a/beszel/internal/agent/agent.go b/beszel/internal/agent/agent.go index 15a253c..fcd2aa2 100644 --- a/beszel/internal/agent/agent.go +++ b/beszel/internal/agent/agent.go @@ -206,7 +206,9 @@ func (a *Agent) getSystemStats() (system.Info, system.Stats) { if info, err := host.Info(); err == nil { systemInfo.Uptime = info.Uptime systemInfo.Hostname = info.Hostname + systemInfo.KernelVersion = info.KernelVersion } + // add cpu stats if info, err := cpu.Info(); err == nil && len(info) > 0 { systemInfo.CpuModel = info[0].ModelName diff --git a/beszel/internal/entities/system/system.go b/beszel/internal/entities/system/system.go index a013169..41f9909 100644 --- a/beszel/internal/entities/system/system.go +++ b/beszel/internal/entities/system/system.go @@ -46,6 +46,7 @@ type NetIoStats struct { type Info struct { Hostname string `json:"h"` + KernelVersion string `json:"k"` Cores int `json:"c"` Threads int `json:"t"` diff --git a/beszel/site/src/components/routes/system.tsx b/beszel/site/src/components/routes/system.tsx index 0f6f383..d93d8a4 100644 --- a/beszel/site/src/components/routes/system.tsx +++ b/beszel/site/src/components/routes/system.tsx @@ -12,6 +12,7 @@ import { MonitorIcon, StretchHorizontalIcon, XIcon, + BinaryIcon } from 'lucide-react' import ChartTimeSelect from '../charts/chart-time-select' import { @@ -270,6 +271,18 @@ export default function SystemDetail({ name }: { name: string }) { )} + {/* kernel */} + + + + +
+ {system.info.k} +
+
+ Kernel +
+
{system.info?.u && ( diff --git a/beszel/site/src/types.d.ts b/beszel/site/src/types.d.ts index 099a95c..40f4ca7 100644 --- a/beszel/site/src/types.d.ts +++ b/beszel/site/src/types.d.ts @@ -12,6 +12,8 @@ export interface SystemRecord extends RecordModel { export interface SystemInfo { /** hostname */ h: string + /** kernel **/ + k: string /** cpu percent */ cpu: number /** cpu threads */