package perf import ( "context" "time" "github.com/mostlygeek/llama-swap/internal/logmon" "github.com/shirou/gopsutil/v4/cpu" "github.com/shirou/gopsutil/v4/mem" "github.com/shirou/gopsutil/v4/net" ) func getGpuStats(ctx context.Context, every time.Duration, logger *logmon.Monitor) (chan []GpuStat, error) { return nil, ErrNotImplemented } func readSysStats() (SysStat, error) { cpuPcts, err := cpu.Percent(0, true) if err != nil { return SysStat{}, err } vmStat, err := mem.VirtualMemory() if err != nil { return SysStat{}, err } const toMB = 1024 * 1024 netIO := make([]NetIOStat, 0) if ioCounters, err := net.IOCounters(true); err == nil { for _, ioc := range ioCounters { netIO = append(netIO, NetIOStat{ Name: ioc.Name, BytesRecv: ioc.BytesRecv, BytesSent: ioc.BytesSent, }) } } return SysStat{ Timestamp: time.Now(), CpuUtilPerCore: cpuPcts, MemTotalMB: int(vmStat.Total / toMB), MemUsedMB: int(vmStat.Used / toMB), MemFreeMB: int(vmStat.Free / toMB), NetIO: netIO, }, nil }