This commit is contained in:
henrygd
2025-12-16 18:33:32 -05:00
parent 996444abeb
commit 82bd953941
5 changed files with 33 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"log/slog" "log/slog"
"os" "os"
"runtime"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@@ -41,6 +42,11 @@ func (a *Agent) refreshStaticInfo() {
} }
a.systemDetails.Hostname, _ = os.Hostname() a.systemDetails.Hostname, _ = os.Hostname()
if arch, err := host.KernelArch(); err == nil {
a.systemDetails.Arch = arch
} else {
a.systemDetails.Arch = runtime.GOARCH
}
platform, _, version, _ := host.PlatformInformation() platform, _, version, _ := host.PlatformInformation()

View File

@@ -158,10 +158,11 @@ type Details struct {
Hostname string `cbor:"0,keyasint"` Hostname string `cbor:"0,keyasint"`
Kernel string `cbor:"1,keyasint,omitempty"` Kernel string `cbor:"1,keyasint,omitempty"`
Cores int `cbor:"2,keyasint"` Cores int `cbor:"2,keyasint"`
Threads int `cbor:"3,keyasint,omitempty"` Threads int `cbor:"3,keyasint"`
CpuModel string `cbor:"4,keyasint"` CpuModel string `cbor:"4,keyasint"`
Os Os `cbor:"5,keyasint"` Os Os `cbor:"5,keyasint"`
OsName string `cbor:"6,keyasint"` OsName string `cbor:"6,keyasint"`
Arch string `cbor:"7,keyasint"`
Podman bool `cbor:"8,keyasint,omitempty"` Podman bool `cbor:"8,keyasint,omitempty"`
MemoryTotal uint64 `cbor:"9,keyasint"` MemoryTotal uint64 `cbor:"9,keyasint"`
} }

View File

@@ -236,6 +236,7 @@ func createStaticInfoRecord(app core.App, data *system.Details, systemId string)
record.Set("cpu", data.CpuModel) record.Set("cpu", data.CpuModel)
record.Set("os", data.Os) record.Set("os", data.Os)
record.Set("os_name", data.OsName) record.Set("os_name", data.OsName)
record.Set("arch", data.Arch)
record.Set("memory", data.MemoryTotal) record.Set("memory", data.MemoryTotal)
record.Set("podman", data.Podman) record.Set("podman", data.Podman)
return app.SaveNoValidate(record) return app.SaveNoValidate(record)

View File

@@ -1539,6 +1539,20 @@ func init() {
"system": false, "system": false,
"type": "text" "type": "text"
}, },
{
"autogeneratePattern": "",
"hidden": false,
"id": "text4161937994",
"max": 0,
"min": 0,
"name": "arch",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{ {
"hidden": false, "hidden": false,
"id": "number4245036687", "id": "number4245036687",

View File

@@ -7,6 +7,7 @@ import { cn, formatBytes, getHostDisplayValue, secondsToString, toFixedFloat } f
import { Separator } from "@/components/ui/separator" import { Separator } from "@/components/ui/separator"
import { import {
AppleIcon, AppleIcon,
BinaryIcon,
ChevronRightSquareIcon, ChevronRightSquareIcon,
ClockArrowUp, ClockArrowUp,
CpuIcon, CpuIcon,
@@ -46,7 +47,7 @@ export default function InfoBar({
} }
pb.collection<SystemDetailsRecord>("system_details") pb.collection<SystemDetailsRecord>("system_details")
.getOne(system.id, { .getOne(system.id, {
fields: "hostname,kernel,cores,threads,cpu,os,os_name,memory,podman", fields: "hostname,kernel,cores,threads,cpu,os,os_name,arch,memory,podman",
headers: { headers: {
"Cache-Control": "public, max-age=60", "Cache-Control": "public, max-age=60",
}, },
@@ -72,6 +73,7 @@ export default function InfoBar({
const cpuModel = details?.cpu ?? system.info.m const cpuModel = details?.cpu ?? system.info.m
const os = details?.os ?? system.info.os ?? Os.Linux const os = details?.os ?? system.info.os ?? Os.Linux
const osName = details?.os_name const osName = details?.os_name
const arch = details?.arch
const memory = details?.memory const memory = details?.memory
const osInfo = { const osInfo = {
@@ -116,6 +118,7 @@ export default function InfoBar({
}, },
{ value: uptime, Icon: ClockArrowUp, label: t`Uptime`, hide: !system.info.u }, { value: uptime, Icon: ClockArrowUp, label: t`Uptime`, hide: !system.info.u },
osInfo[os], osInfo[os],
{ value: arch, Icon: BinaryIcon, hide: !arch },
] as { ] as {
value: string | number | undefined value: string | number | undefined
label?: string label?: string
@@ -123,6 +126,12 @@ export default function InfoBar({
hide?: boolean hide?: boolean
}[] }[]
info.push({
value: `${cpuModel} (${cores}c${threads ? `/${threads}t` : ""})`,
Icon: CpuIcon,
hide: !cpuModel,
})
if (memory) { if (memory) {
const memValue = formatBytes(memory, false, undefined, false) const memValue = formatBytes(memory, false, undefined, false)
info.push({ info.push({
@@ -133,12 +142,6 @@ export default function InfoBar({
}) })
} }
info.push({
value: `${cpuModel} (${cores}c${threads ? `/${threads}t` : ""})`,
Icon: CpuIcon,
hide: !cpuModel,
})
return info return info
}, [system, details, t]) }, [system, details, t])