The machine package contains functions that extract machine-level specs.
GetClockSpeed returns the CPU clock speed, given a byte formatted as the /proc/cpuinfo file.
GetMachineMemoryByType returns information about memory capacity and number of DIMMs. Information is retrieved from sysfs edac per-DIMM API (/sys/devices/system/edac/mc/) introduced in kernel 3.6. Documentation can be found at https://www.kernel.org/doc/Documentation/admin-guide/ras.rst. Full list of memory types can be found in edac_mc.c (https://github.com/torvalds/linux/blob/v5.5/drivers/edac/edac_mc.c#L198)
GetMachineMemoryCapacity returns the machine's total memory from /proc/meminfo. Returns the total memory capacity as an uint64 (number of bytes).
GetMachineSwapCapacity returns the machine's total swap from /proc/meminfo. Returns the total swap capacity as an uint64 (number of bytes).
GetPhysicalCores returns number of CPU cores reading /proc/cpuinfo file or if needed information from sysfs cpu path
GetSockets returns number of CPU sockets reading /proc/cpuinfo file or if needed information from sysfs cpu path
GetTopology returns CPU topology reading information from sysfs