package sysfs
import "github.com/google/cadvisor/utils/sysfs"
Index ¶
- Constants
- func GetUniqueCPUPropertyCount(cpuAttributesPath string, propertyName string) int
- type CacheInfo
- type SysFs
Constants ¶
const ( // CPUPhysicalPackageID is a physical package id of cpu#. Typically corresponds to a physical socket number, // but the actual value is architecture and platform dependent. CPUPhysicalPackageID = "physical_package_id" // CPUCoreID is the CPU core ID of cpu#. Typically it is the hardware platform's identifier // (rather than the kernel's). The actual value is architecture and platform dependent. CPUCoreID = "core_id" //HugePagesNrFile name of nr_hugepages file in sysfs HugePagesNrFile = "nr_hugepages" )
Functions ¶
func GetUniqueCPUPropertyCount ¶
Looks for sysfs cpu path containing given CPU property, e.g. core_id or physical_package_id and returns number of unique values of given property, exemplary usage: getting number of CPU physical cores
Types ¶
type CacheInfo ¶
type CacheInfo struct {
// cache id
Id int
// size in bytes
Size uint64
// cache type - instruction, data, unified
Type string
// distance from cpus in a multi-level hierarchy
Level int
// number of cpus that can access this cache.
Cpus int
}
type SysFs ¶
type SysFs interface {
// Get NUMA nodes paths
GetNodesPaths() ([]string, error)
// Get paths to CPUs in provided directory e.g. /sys/devices/system/node/node0 or /sys/devices/system/cpu
GetCPUsPaths(cpusPath string) ([]string, error)
// Get physical core id for specified CPU
GetCoreID(coreIDFilePath string) (string, error)
// Get physical package id for specified CPU
GetCPUPhysicalPackageID(cpuPath string) (string, error)
// Get book id for specified CPU
GetBookID(cpuPath string) (string, error)
// Get drawer id for specified CPU
GetDrawerID(cpuPath string) (string, error)
// Get total memory for specified NUMA node
GetMemInfo(nodeDir string) (string, error)
// Get hugepages from specified directory
GetHugePagesInfo(hugePagesDirectory string) ([]os.FileInfo, error)
// Get hugepage_nr from specified directory
GetHugePagesNr(hugePagesDirectory string, hugePageName string) (string, error)
// Get directory information for available block devices.
GetBlockDevices() ([]os.FileInfo, error)
// Get Size of a given block device.
GetBlockDeviceSize(string) (string, error)
// Get scheduler type for the block device.
GetBlockDeviceScheduler(string) (string, error)
// Get device major:minor number string.
GetBlockDeviceNumbers(string) (string, error)
// Is the device "hidden" (meaning will not have a device handle)
// This is the case with native nvme multipathing.
IsBlockDeviceHidden(string) (bool, error)
GetNetworkDevices() ([]os.FileInfo, error)
GetNetworkAddress(string) (string, error)
GetNetworkMtu(string) (string, error)
GetNetworkSpeed(string) (string, error)
GetNetworkStatValue(dev string, stat string) (uint64, error)
// Get directory information for available caches accessible to given cpu.
GetCaches(id int) ([]os.FileInfo, error)
// Get information for a cache accessible from the given cpu.
GetCacheInfo(cpu int, cache string) (CacheInfo, error)
GetSystemUUID() (string, error)
// GetDistances returns distance array
GetDistances(string) (string, error)
// IsCPUOnline determines if CPU status from kernel hotplug machanism standpoint.
// See: https://www.kernel.org/doc/html/latest/core-api/cpu_hotplug.html
IsCPUOnline(dir string) bool
}
Abstracts the lowest level calls to sysfs.
func NewRealSysFs ¶
func NewRealSysFs() SysFs
Source Files ¶
Directories ¶
| Path | Synopsis |
|---|---|
| utils/sysfs/fakesysfs |
- Version
- v0.55.1 (latest)
- Published
- Dec 19, 2025
- Platform
- linux/amd64
- Imports
- 10 packages
- Last checked
- 4 months ago –
Tools for package owners.