Documentation ¶
Index ¶
- func EnterPid(cgroupPaths map[string]string, pid int) error
- func FindCgroupMountpoint(subsystem string) (string, error)
- func FindCgroupMountpointDir() (string, error)
- func GetAllSubsystems() ([]string, error)
- func GetHugePageSize() ([]string, error)
- func GetInitCgroupDir(subsystem string) (string, error)
- func GetThisCgroupDir(subsystem string) (string, error)
- func IsNotFound(err error) bool
- func NewNotFoundError(sub string) error
- func ParseCgroupFile(subsystem string, r io.Reader) (string, error)
- func PathExists(path string) bool
- func ReadProcsFile(dir string) ([]int, error)
- func RemovePaths(paths map[string]string) (err error)
- type BlkioStatEntry
- type BlkioStats
- type CpuStats
- type CpuUsage
- type HugetlbStats
- type Manager
- type MemoryData
- type MemoryStats
- type Mount
- type NotFoundError
- type Stats
- type ThrottlingData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindCgroupMountpointDir ¶
func GetAllSubsystems ¶ added in v1.0.1
Returns all the cgroup subsystems supported by the kernel
func GetHugePageSize ¶
func GetInitCgroupDir ¶
func GetThisCgroupDir ¶
Returns the relative path to the cgroup docker is running in.
func IsNotFound ¶ added in v1.2.0
func NewNotFoundError ¶ added in v1.2.0
func ParseCgroupFile ¶ added in v1.4.0
func PathExists ¶
func ReadProcsFile ¶
func RemovePaths ¶ added in v1.4.0
RemovePaths iterates over the provided paths removing them. We trying to remove all paths five times with increasing delay between tries. If after all there are not removed cgroups - appropriate error will be returned.
Types ¶
type BlkioStatEntry ¶
type BlkioStats ¶
type BlkioStats struct { // number of bytes tranferred to and from the block device IoServiceBytesRecursive []BlkioStatEntry `json:"io_service_bytes_recursive,omitempty"` IoServicedRecursive []BlkioStatEntry `json:"io_serviced_recursive,omitempty"` IoQueuedRecursive []BlkioStatEntry `json:"io_queue_recursive,omitempty"` IoServiceTimeRecursive []BlkioStatEntry `json:"io_service_time_recursive,omitempty"` IoWaitTimeRecursive []BlkioStatEntry `json:"io_wait_time_recursive,omitempty"` IoMergedRecursive []BlkioStatEntry `json:"io_merged_recursive,omitempty"` IoTimeRecursive []BlkioStatEntry `json:"io_time_recursive,omitempty"` SectorsRecursive []BlkioStatEntry `json:"sectors_recursive,omitempty"` }
type CpuStats ¶
type CpuStats struct { CpuUsage CpuUsage `json:"cpu_usage,omitempty"` ThrottlingData ThrottlingData `json:"throttling_data,omitempty"` }
type CpuUsage ¶
type CpuUsage struct { // Total CPU time consumed. // Units: nanoseconds. TotalUsage uint64 `json:"total_usage,omitempty"` // Total CPU time consumed per core. // Units: nanoseconds. PercpuUsage []uint64 `json:"percpu_usage,omitempty"` // Time spent by tasks of the cgroup in kernel mode. // Units: nanoseconds. UsageInKernelmode uint64 `json:"usage_in_kernelmode"` // Time spent by tasks of the cgroup in user mode. // Units: nanoseconds. UsageInUsermode uint64 `json:"usage_in_usermode"` }
All CPU stats are aggregate since container inception.
type HugetlbStats ¶
type Manager ¶
type Manager interface { // Apply cgroup configuration to the process with the specified pid Apply(pid int) error // Returns the PIDs inside the cgroup set GetPids() ([]int, error) // Returns statistics for the cgroup set GetStats() (*Stats, error) // Toggles the freezer cgroup according with specified state Freeze(state configs.FreezerState) error // Destroys the cgroup set Destroy() error // Returns cgroup paths to save in a state file and to be able to // restore the object later. GetPaths() map[string]string // Set the cgroup as configured. Set(container *configs.Config) error }
type MemoryData ¶
type MemoryStats ¶
type MemoryStats struct { // memory used for cache Cache uint64 `json:"cache,omitempty"` // usage of memory Usage MemoryData `json:"usage,omitempty"` // usage of memory + swap SwapUsage MemoryData `json:"swap_usage,omitempty"` // usafe of kernel memory KernelUsage MemoryData `json:"kernel_usage,omitempty"` Stats map[string]uint64 `json:"stats,omitempty"` }
type Mount ¶ added in v1.0.1
func GetCgroupMounts ¶ added in v1.0.1
func (Mount) GetThisCgroupDir ¶ added in v1.0.1
type NotFoundError ¶ added in v1.2.0
type NotFoundError struct {
Subsystem string
}
func (*NotFoundError) Error ¶ added in v1.2.0
func (e *NotFoundError) Error() string
type Stats ¶
type Stats struct { CpuStats CpuStats `json:"cpu_stats,omitempty"` MemoryStats MemoryStats `json:"memory_stats,omitempty"` BlkioStats BlkioStats `json:"blkio_stats,omitempty"` // the map is in the format "size of hugepage: stats of the hugepage" HugetlbStats map[string]HugetlbStats `json:"hugetlb_stats,omitempty"` }
type ThrottlingData ¶
type ThrottlingData struct { // Number of periods with throttling active Periods uint64 `json:"periods,omitempty"` // Number of periods when the container hit its throttling limit. ThrottledPeriods uint64 `json:"throttled_periods,omitempty"` // Aggregate time the container was throttled for in nanoseconds. ThrottledTime uint64 `json:"throttled_time,omitempty"` }
Click to show internal directories.
Click to hide internal directories.