Documentation ¶
Overview ¶
Package cgroups is a generated protocol buffer package.
It is generated from these files:
github.com/containerd/cgroups/metrics.proto
It has these top-level messages:
Metrics HugetlbStat PidsStat CPUStat CPUUsage Throttle MemoryStat MemoryEntry BlkIOStat BlkIOEntry
Index ¶
- Variables
- func IgnoreNotExist(err error) error
- func NewBlkio(root string) *blkioController
- func NewCpu(root string) *cpuController
- func NewCpuacct(root string) *cpuacctController
- func NewCputset(root string) *cpusetController
- func NewDevices(root string) *devicesController
- func NewFreezer(root string) *freezerController
- func NewHugetlb(root string) (*hugetlbController, error)
- func NewMemory(root string) *memoryController
- func NewNamed(root string, name Name) *namedController
- func NewNetCls(root string) *netclsController
- func NewNetPrio(root string) *netprioController
- func NewPids(root string) *pidsController
- func RootPath(subsysem Name) (string, error)
- type BlkIOEntry
- func (*BlkIOEntry) Descriptor() ([]byte, []int)
- func (m *BlkIOEntry) Marshal() (dAtA []byte, err error)
- func (m *BlkIOEntry) MarshalTo(dAtA []byte) (int, error)
- func (*BlkIOEntry) ProtoMessage()
- func (m *BlkIOEntry) Reset()
- func (m *BlkIOEntry) Size() (n int)
- func (this *BlkIOEntry) String() string
- func (m *BlkIOEntry) Unmarshal(dAtA []byte) error
- type BlkIOStat
- func (*BlkIOStat) Descriptor() ([]byte, []int)
- func (m *BlkIOStat) Marshal() (dAtA []byte, err error)
- func (m *BlkIOStat) MarshalTo(dAtA []byte) (int, error)
- func (*BlkIOStat) ProtoMessage()
- func (m *BlkIOStat) Reset()
- func (m *BlkIOStat) Size() (n int)
- func (this *BlkIOStat) String() string
- func (m *BlkIOStat) Unmarshal(dAtA []byte) error
- type CPUStat
- func (*CPUStat) Descriptor() ([]byte, []int)
- func (m *CPUStat) Marshal() (dAtA []byte, err error)
- func (m *CPUStat) MarshalTo(dAtA []byte) (int, error)
- func (*CPUStat) ProtoMessage()
- func (m *CPUStat) Reset()
- func (m *CPUStat) Size() (n int)
- func (this *CPUStat) String() string
- func (m *CPUStat) Unmarshal(dAtA []byte) error
- type CPUUsage
- func (*CPUUsage) Descriptor() ([]byte, []int)
- func (m *CPUUsage) Marshal() (dAtA []byte, err error)
- func (m *CPUUsage) MarshalTo(dAtA []byte) (int, error)
- func (*CPUUsage) ProtoMessage()
- func (m *CPUUsage) Reset()
- func (m *CPUUsage) Size() (n int)
- func (this *CPUUsage) String() string
- func (m *CPUUsage) Unmarshal(dAtA []byte) error
- type Cgroup
- type ErrorHandler
- type Hierarchy
- type HugetlbStat
- func (*HugetlbStat) Descriptor() ([]byte, []int)
- func (m *HugetlbStat) Marshal() (dAtA []byte, err error)
- func (m *HugetlbStat) MarshalTo(dAtA []byte) (int, error)
- func (*HugetlbStat) ProtoMessage()
- func (m *HugetlbStat) Reset()
- func (m *HugetlbStat) Size() (n int)
- func (this *HugetlbStat) String() string
- func (m *HugetlbStat) Unmarshal(dAtA []byte) error
- type MemoryEntry
- func (*MemoryEntry) Descriptor() ([]byte, []int)
- func (m *MemoryEntry) Marshal() (dAtA []byte, err error)
- func (m *MemoryEntry) MarshalTo(dAtA []byte) (int, error)
- func (*MemoryEntry) ProtoMessage()
- func (m *MemoryEntry) Reset()
- func (m *MemoryEntry) Size() (n int)
- func (this *MemoryEntry) String() string
- func (m *MemoryEntry) Unmarshal(dAtA []byte) error
- type MemoryStat
- func (*MemoryStat) Descriptor() ([]byte, []int)
- func (m *MemoryStat) Marshal() (dAtA []byte, err error)
- func (m *MemoryStat) MarshalTo(dAtA []byte) (int, error)
- func (*MemoryStat) ProtoMessage()
- func (m *MemoryStat) Reset()
- func (m *MemoryStat) Size() (n int)
- func (this *MemoryStat) String() string
- func (m *MemoryStat) Unmarshal(dAtA []byte) error
- type Metrics
- func (*Metrics) Descriptor() ([]byte, []int)
- func (m *Metrics) Marshal() (dAtA []byte, err error)
- func (m *Metrics) MarshalTo(dAtA []byte) (int, error)
- func (*Metrics) ProtoMessage()
- func (m *Metrics) Reset()
- func (m *Metrics) Size() (n int)
- func (this *Metrics) String() string
- func (m *Metrics) Unmarshal(dAtA []byte) error
- type Name
- type Path
- type PerfEventController
- type PidsStat
- func (*PidsStat) Descriptor() ([]byte, []int)
- func (m *PidsStat) Marshal() (dAtA []byte, err error)
- func (m *PidsStat) MarshalTo(dAtA []byte) (int, error)
- func (*PidsStat) ProtoMessage()
- func (m *PidsStat) Reset()
- func (m *PidsStat) Size() (n int)
- func (this *PidsStat) String() string
- func (m *PidsStat) Unmarshal(dAtA []byte) error
- type Process
- type State
- type Subsystem
- type SystemdController
- type Throttle
- func (*Throttle) Descriptor() ([]byte, []int)
- func (m *Throttle) Marshal() (dAtA []byte, err error)
- func (m *Throttle) MarshalTo(dAtA []byte) (int, error)
- func (*Throttle) ProtoMessage()
- func (m *Throttle) Reset()
- func (m *Throttle) Size() (n int)
- func (this *Throttle) String() string
- func (m *Throttle) Unmarshal(dAtA []byte) error
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidPid = errors.New("cgroups: pid must be greater than 0") ErrMountPointNotExist = errors.New("cgroups: cgroup mountpoint does not exist") ErrInvalidFormat = errors.New("cgroups: parsing file with invalid format failed") ErrFreezerNotSupported = errors.New("cgroups: freezer cgroup not supported on this system") ErrMemoryNotSupported = errors.New("cgroups: memory cgroup not supported on this system") ErrCgroupDeleted = errors.New("cgroups: cgroup deleted") ErrNoCgroupMountDestination = errors.New("cgroups: cannot found cgroup mount destination") )
var ( ErrInvalidLengthMetrics = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowMetrics = fmt.Errorf("proto: integer overflow") )
Functions ¶
func IgnoreNotExist ¶
IgnoreNotExist ignores any errors that are for not existing files
func NewCpuacct ¶
func NewCpuacct(root string) *cpuacctController
func NewCputset ¶
func NewCputset(root string) *cpusetController
func NewDevices ¶
func NewDevices(root string) *devicesController
func NewFreezer ¶
func NewFreezer(root string) *freezerController
func NewHugetlb ¶
func NewNetPrio ¶
func NewNetPrio(root string) *netprioController
Types ¶
type BlkIOEntry ¶
type BlkIOEntry struct { Op string `protobuf:"bytes,1,opt,name=op,proto3" json:"op,omitempty"` Device string `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"` Major uint64 `protobuf:"varint,3,opt,name=major,proto3" json:"major,omitempty"` Minor uint64 `protobuf:"varint,4,opt,name=minor,proto3" json:"minor,omitempty"` Value uint64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"` }
func (*BlkIOEntry) Descriptor ¶
func (*BlkIOEntry) Descriptor() ([]byte, []int)
func (*BlkIOEntry) Marshal ¶
func (m *BlkIOEntry) Marshal() (dAtA []byte, err error)
func (*BlkIOEntry) ProtoMessage ¶
func (*BlkIOEntry) ProtoMessage()
func (*BlkIOEntry) Reset ¶
func (m *BlkIOEntry) Reset()
func (*BlkIOEntry) Size ¶
func (m *BlkIOEntry) Size() (n int)
func (*BlkIOEntry) String ¶
func (this *BlkIOEntry) String() string
func (*BlkIOEntry) Unmarshal ¶
func (m *BlkIOEntry) Unmarshal(dAtA []byte) error
type BlkIOStat ¶
type BlkIOStat struct { IoServiceBytesRecursive []*BlkIOEntry `` /* 127-byte string literal not displayed */ IoServicedRecursive []*BlkIOEntry `protobuf:"bytes,2,rep,name=io_serviced_recursive,json=ioServicedRecursive" json:"io_serviced_recursive,omitempty"` IoQueuedRecursive []*BlkIOEntry `protobuf:"bytes,3,rep,name=io_queued_recursive,json=ioQueuedRecursive" json:"io_queued_recursive,omitempty"` IoServiceTimeRecursive []*BlkIOEntry `protobuf:"bytes,4,rep,name=io_service_time_recursive,json=ioServiceTimeRecursive" json:"io_service_time_recursive,omitempty"` IoWaitTimeRecursive []*BlkIOEntry `protobuf:"bytes,5,rep,name=io_wait_time_recursive,json=ioWaitTimeRecursive" json:"io_wait_time_recursive,omitempty"` IoMergedRecursive []*BlkIOEntry `protobuf:"bytes,6,rep,name=io_merged_recursive,json=ioMergedRecursive" json:"io_merged_recursive,omitempty"` IoTimeRecursive []*BlkIOEntry `protobuf:"bytes,7,rep,name=io_time_recursive,json=ioTimeRecursive" json:"io_time_recursive,omitempty"` SectorsRecursive []*BlkIOEntry `protobuf:"bytes,8,rep,name=sectors_recursive,json=sectorsRecursive" json:"sectors_recursive,omitempty"` }
func (*BlkIOStat) Descriptor ¶
func (*BlkIOStat) ProtoMessage ¶
func (*BlkIOStat) ProtoMessage()
type CPUStat ¶
type CPUStat struct { Usage *CPUUsage `protobuf:"bytes,1,opt,name=usage" json:"usage,omitempty"` Throttling *Throttle `protobuf:"bytes,2,opt,name=throttling" json:"throttling,omitempty"` }
func (*CPUStat) Descriptor ¶
func (*CPUStat) ProtoMessage ¶
func (*CPUStat) ProtoMessage()
type CPUUsage ¶
type CPUUsage struct { // values in nanoseconds Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` Kernel uint64 `protobuf:"varint,2,opt,name=kernel,proto3" json:"kernel,omitempty"` User uint64 `protobuf:"varint,3,opt,name=user,proto3" json:"user,omitempty"` PerCPU []uint64 `protobuf:"varint,4,rep,packed,name=per_cpu,json=perCpu" json:"per_cpu,omitempty"` }
func (*CPUUsage) Descriptor ¶
func (*CPUUsage) ProtoMessage ¶
func (*CPUUsage) ProtoMessage()
type Cgroup ¶
type Cgroup interface { // New creates a new cgroup under the calling cgroup New(string, *specs.LinuxResources) (Cgroup, error) // Add adds a process to the cgroup Add(Process) error // Delete removes the cgroup as a whole Delete() error // MoveTo moves all the processes under the calling cgroup to the provided one // subsystems are moved one at a time MoveTo(Cgroup) error // Stat returns the stats for all subsystems in the cgroup Stat(...ErrorHandler) (*Metrics, error) // Update updates all the subsystems with the provided resource changes Update(resources *specs.LinuxResources) error // Processes returns all the processes in a select subsystem for the cgroup Processes(Name, bool) ([]Process, error) // Freeze freezes or pauses all processes inside the cgroup Freeze() error // Thaw thaw or resumes all processes inside the cgroup Thaw() error // OOMEventFD returns the memory subsystem's event fd for OOM events OOMEventFD() (uintptr, error) // State returns the cgroups current state State() State // Subsystems returns all the subsystems in the cgroup Subsystems() []Subsystem }
Cgroup handles interactions with the individual groups to perform actions on them as them main interface to this cgroup package
type ErrorHandler ¶
ErrorHandler is a function that handles and acts on errors
type Hierarchy ¶
Hierarchy enableds both unified and split hierarchy for cgroups
func SingleSubsystem ¶
SingleSubsystem returns a single cgroup subsystem within the base Hierarchy
type HugetlbStat ¶
type HugetlbStat struct { Usage uint64 `protobuf:"varint,1,opt,name=usage,proto3" json:"usage,omitempty"` Max uint64 `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"` Failcnt uint64 `protobuf:"varint,3,opt,name=failcnt,proto3" json:"failcnt,omitempty"` Pagesize string `protobuf:"bytes,4,opt,name=pagesize,proto3" json:"pagesize,omitempty"` }
func (*HugetlbStat) Descriptor ¶
func (*HugetlbStat) Descriptor() ([]byte, []int)
func (*HugetlbStat) Marshal ¶
func (m *HugetlbStat) Marshal() (dAtA []byte, err error)
func (*HugetlbStat) ProtoMessage ¶
func (*HugetlbStat) ProtoMessage()
func (*HugetlbStat) Reset ¶
func (m *HugetlbStat) Reset()
func (*HugetlbStat) Size ¶
func (m *HugetlbStat) Size() (n int)
func (*HugetlbStat) String ¶
func (this *HugetlbStat) String() string
func (*HugetlbStat) Unmarshal ¶
func (m *HugetlbStat) Unmarshal(dAtA []byte) error
type MemoryEntry ¶
type MemoryEntry struct { Limit uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` Usage uint64 `protobuf:"varint,2,opt,name=usage,proto3" json:"usage,omitempty"` Max uint64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"` Failcnt uint64 `protobuf:"varint,4,opt,name=failcnt,proto3" json:"failcnt,omitempty"` }
func (*MemoryEntry) Descriptor ¶
func (*MemoryEntry) Descriptor() ([]byte, []int)
func (*MemoryEntry) Marshal ¶
func (m *MemoryEntry) Marshal() (dAtA []byte, err error)
func (*MemoryEntry) ProtoMessage ¶
func (*MemoryEntry) ProtoMessage()
func (*MemoryEntry) Reset ¶
func (m *MemoryEntry) Reset()
func (*MemoryEntry) Size ¶
func (m *MemoryEntry) Size() (n int)
func (*MemoryEntry) String ¶
func (this *MemoryEntry) String() string
func (*MemoryEntry) Unmarshal ¶
func (m *MemoryEntry) Unmarshal(dAtA []byte) error
type MemoryStat ¶
type MemoryStat struct { Cache uint64 `protobuf:"varint,1,opt,name=cache,proto3" json:"cache,omitempty"` RSS uint64 `protobuf:"varint,2,opt,name=rss,proto3" json:"rss,omitempty"` RSSHuge uint64 `protobuf:"varint,3,opt,name=rss_huge,json=rssHuge,proto3" json:"rss_huge,omitempty"` MappedFile uint64 `protobuf:"varint,4,opt,name=mapped_file,json=mappedFile,proto3" json:"mapped_file,omitempty"` Dirty uint64 `protobuf:"varint,5,opt,name=dirty,proto3" json:"dirty,omitempty"` Writeback uint64 `protobuf:"varint,6,opt,name=writeback,proto3" json:"writeback,omitempty"` PgPgIn uint64 `protobuf:"varint,7,opt,name=pg_pg_in,json=pgPgIn,proto3" json:"pg_pg_in,omitempty"` PgPgOut uint64 `protobuf:"varint,8,opt,name=pg_pg_out,json=pgPgOut,proto3" json:"pg_pg_out,omitempty"` PgFault uint64 `protobuf:"varint,9,opt,name=pg_fault,json=pgFault,proto3" json:"pg_fault,omitempty"` PgMajFault uint64 `protobuf:"varint,10,opt,name=pg_maj_fault,json=pgMajFault,proto3" json:"pg_maj_fault,omitempty"` InactiveAnon uint64 `protobuf:"varint,11,opt,name=inactive_anon,json=inactiveAnon,proto3" json:"inactive_anon,omitempty"` ActiveAnon uint64 `protobuf:"varint,12,opt,name=active_anon,json=activeAnon,proto3" json:"active_anon,omitempty"` InactiveFile uint64 `protobuf:"varint,13,opt,name=inactive_file,json=inactiveFile,proto3" json:"inactive_file,omitempty"` ActiveFile uint64 `protobuf:"varint,14,opt,name=active_file,json=activeFile,proto3" json:"active_file,omitempty"` Unevictable uint64 `protobuf:"varint,15,opt,name=unevictable,proto3" json:"unevictable,omitempty"` HierarchicalMemoryLimit uint64 `` /* 134-byte string literal not displayed */ HierarchicalSwapLimit uint64 `` /* 128-byte string literal not displayed */ TotalCache uint64 `protobuf:"varint,18,opt,name=total_cache,json=totalCache,proto3" json:"total_cache,omitempty"` TotalRSS uint64 `protobuf:"varint,19,opt,name=total_rss,json=totalRss,proto3" json:"total_rss,omitempty"` TotalRSSHuge uint64 `protobuf:"varint,20,opt,name=total_rss_huge,json=totalRssHuge,proto3" json:"total_rss_huge,omitempty"` TotalMappedFile uint64 `protobuf:"varint,21,opt,name=total_mapped_file,json=totalMappedFile,proto3" json:"total_mapped_file,omitempty"` TotalDirty uint64 `protobuf:"varint,22,opt,name=total_dirty,json=totalDirty,proto3" json:"total_dirty,omitempty"` TotalWriteback uint64 `protobuf:"varint,23,opt,name=total_writeback,json=totalWriteback,proto3" json:"total_writeback,omitempty"` TotalPgPgIn uint64 `protobuf:"varint,24,opt,name=total_pg_pg_in,json=totalPgPgIn,proto3" json:"total_pg_pg_in,omitempty"` TotalPgPgOut uint64 `protobuf:"varint,25,opt,name=total_pg_pg_out,json=totalPgPgOut,proto3" json:"total_pg_pg_out,omitempty"` TotalPgFault uint64 `protobuf:"varint,26,opt,name=total_pg_fault,json=totalPgFault,proto3" json:"total_pg_fault,omitempty"` TotalPgMajFault uint64 `protobuf:"varint,27,opt,name=total_pg_maj_fault,json=totalPgMajFault,proto3" json:"total_pg_maj_fault,omitempty"` TotalInactiveAnon uint64 `protobuf:"varint,28,opt,name=total_inactive_anon,json=totalInactiveAnon,proto3" json:"total_inactive_anon,omitempty"` TotalActiveAnon uint64 `protobuf:"varint,29,opt,name=total_active_anon,json=totalActiveAnon,proto3" json:"total_active_anon,omitempty"` TotalInactiveFile uint64 `protobuf:"varint,30,opt,name=total_inactive_file,json=totalInactiveFile,proto3" json:"total_inactive_file,omitempty"` TotalActiveFile uint64 `protobuf:"varint,31,opt,name=total_active_file,json=totalActiveFile,proto3" json:"total_active_file,omitempty"` TotalUnevictable uint64 `protobuf:"varint,32,opt,name=total_unevictable,json=totalUnevictable,proto3" json:"total_unevictable,omitempty"` Usage *MemoryEntry `protobuf:"bytes,33,opt,name=usage" json:"usage,omitempty"` Swap *MemoryEntry `protobuf:"bytes,34,opt,name=swap" json:"swap,omitempty"` Kernel *MemoryEntry `protobuf:"bytes,35,opt,name=kernel" json:"kernel,omitempty"` KernelTCP *MemoryEntry `protobuf:"bytes,36,opt,name=kernel_tcp,json=kernelTcp" json:"kernel_tcp,omitempty"` }
func (*MemoryStat) Descriptor ¶
func (*MemoryStat) Descriptor() ([]byte, []int)
func (*MemoryStat) Marshal ¶
func (m *MemoryStat) Marshal() (dAtA []byte, err error)
func (*MemoryStat) ProtoMessage ¶
func (*MemoryStat) ProtoMessage()
func (*MemoryStat) Reset ¶
func (m *MemoryStat) Reset()
func (*MemoryStat) Size ¶
func (m *MemoryStat) Size() (n int)
func (*MemoryStat) String ¶
func (this *MemoryStat) String() string
func (*MemoryStat) Unmarshal ¶
func (m *MemoryStat) Unmarshal(dAtA []byte) error
type Metrics ¶
type Metrics struct { Hugetlb []*HugetlbStat `protobuf:"bytes,1,rep,name=hugetlb" json:"hugetlb,omitempty"` Pids *PidsStat `protobuf:"bytes,2,opt,name=pids" json:"pids,omitempty"` CPU *CPUStat `protobuf:"bytes,3,opt,name=cpu" json:"cpu,omitempty"` Memory *MemoryStat `protobuf:"bytes,4,opt,name=memory" json:"memory,omitempty"` Blkio *BlkIOStat `protobuf:"bytes,5,opt,name=blkio" json:"blkio,omitempty"` }
func (*Metrics) Descriptor ¶
func (*Metrics) ProtoMessage ¶
func (*Metrics) ProtoMessage()
type Name ¶
type Name string
Name is a typed name for a cgroup subsystem
const (
SystemdDbus Name = "systemd"
)
func Subsystems ¶
func Subsystems() []Name
Subsystems returns a complete list of the default cgroups avaliable on most linux systems
type Path ¶
func NestedPath ¶
NestedPath will nest the cgroups based on the calling processes cgroup placing its child processes inside its own path
func PidPath ¶
PidPath will return the correct cgroup paths for an existing process running inside a cgroup This is commonly used for the Load function to restore an existing container
func StaticPath ¶
StaticPath returns a static path to use for all cgroups
type PerfEventController ¶
type PerfEventController struct {
// contains filtered or unexported fields
}
func NewPerfEvent ¶
func NewPerfEvent(root string) *PerfEventController
func (*PerfEventController) Name ¶
func (p *PerfEventController) Name() Name
func (*PerfEventController) Path ¶
func (p *PerfEventController) Path(path string) string
type PidsStat ¶
type PidsStat struct { Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` }
func (*PidsStat) Descriptor ¶
func (*PidsStat) ProtoMessage ¶
func (*PidsStat) ProtoMessage()
type SystemdController ¶
type SystemdController struct {
// contains filtered or unexported fields
}
func NewSystemd ¶
func NewSystemd(root string) (*SystemdController, error)
func (*SystemdController) Create ¶
func (s *SystemdController) Create(path string, resources *specs.LinuxResources) error
func (*SystemdController) Delete ¶
func (s *SystemdController) Delete(path string) error
func (*SystemdController) Name ¶
func (s *SystemdController) Name() Name
type Throttle ¶
type Throttle struct { Periods uint64 `protobuf:"varint,1,opt,name=periods,proto3" json:"periods,omitempty"` ThrottledPeriods uint64 `protobuf:"varint,2,opt,name=throttled_periods,json=throttledPeriods,proto3" json:"throttled_periods,omitempty"` ThrottledTime uint64 `protobuf:"varint,3,opt,name=throttled_time,json=throttledTime,proto3" json:"throttled_time,omitempty"` }
func (*Throttle) Descriptor ¶
func (*Throttle) ProtoMessage ¶
func (*Throttle) ProtoMessage()