package collector import ( "github.com/shirou/gopsutil/v3/mem" ) type MemoryInfo struct { Total uint64 `json:"total"` Used uint64 `json:"used"` Usage float64 `json:"usage"` } func CollectMemory() (*MemoryInfo, error) { vmStat, err := mem.VirtualMemory() if err != nil { return nil, err } return &MemoryInfo{ Total: vmStat.Total, Used: vmStat.Used, Usage: vmStat.UsedPercent, }, nil }