Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var CgroupsToStats = map[string]Stats{ "cpuset": &CpuSet{}, "shares": &Shares{}, "cpu": &fs.CpuGroup{}, "cpuacct": &fs.CpuacctGroup{}, "memory": &fs.MemoryGroup{}, "devices": &fs.DevicesGroup{}, }
Cgroups2Stats holds pointer to appropriate cgroup type (defined in lib `opencontainers`) under cgroup name as a key
Functions ¶
This section is empty.
Types ¶
type CgroupExtended ¶
type CgroupExtended struct { CpuSet CpuSet `json:"cpuset"` }
CgroupsExtended holds additional group statistics like cpuset and shares These stats are not supported by libcontainers lib
type CpuSet ¶
type CpuSet struct { Cpus string `json:"cpus"` Mems string `json:"mems"` MemoryMigrate uint64 `json:"memory_migrate"` CpuExclusive uint64 `json:"cpu_exclusive"` MemoryExclusive uint64 `json:"memory_exclusive"` }
CpuSet stores information regarding subsystem assignment of individual CPUs and memory nodes
func (*CpuSet) GetExtendedStats ¶
func (cs *CpuSet) GetExtendedStats(path string, ext *CgroupExtended) error
GetExtendedStats extracts CPUs and memory nodes a group can access
type FilesystemInterface ¶
type FilesystemInterface struct { // The block device name associated with the filesystem Device string `json:"device_name"` // Type of the filesystem Type string `json:"type"` // Number of bytes that can be consumed on this filesystem Limit uint64 `json:"capacity"` // Number of bytes that is consumed on this filesystem Usage uint64 `json:"usage"` // Base Usage that is consumed by the container's writable layer BaseUsage uint64 `json:"base_usage"` // Number of bytes available for non-root user Available uint64 `json:"available"` // Number of available Inodes InodesFree uint64 `json:"inodes_free"` // This is the total number of reads completed successfully ReadsCompleted uint64 `json:"reads_completed"` // This is the total number of reads merged successfully. This field lets you know how often this was done ReadsMerged uint64 `json:"reads_merged"` // This is the total number of sectors read successfully SectorsRead uint64 `json:"sectors_read"` // This is the total number of milliseconds spent reading ReadTime uint64 `json:"read_time"` // This is the total number of writes completed successfully WritesCompleted uint64 `json:"writes_completed"` // This is the total number of writes merged successfully WritesMerged uint64 `json:"writes_merged"` // This is the total number of sectors written successfully SectorsWritten uint64 `json:"sectors_written"` // This is the total number of milliseconds spent writing WriteTime uint64 `json:"write_time"` // Number of I/Os currently in progress IoInProgress uint64 `json:"io_in_progress"` // Number of milliseconds spent doing I/Os IoTime uint64 `json:"io_time"` // weighted number of milliseconds spent doing I/Os // This field is incremented at each I/O start, I/O completion, I/O // merge, or read of these stats by the number of I/Os in progress // (field 9) times the number of milliseconds spent doing I/O since the // last update of this field. This can provide an easy measure of both // I/O completion time and the backlog that may be accumulating. WeightedIoTime uint64 `json:"weighted_io_time"` }
FilesystemInterface holds statistics about filesystem device, capacity, usage, etc.
type NetworkInterface ¶
type NetworkInterface struct { // Name is the name of the network interface. Name string `json:"-"` RxBytes uint64 `json:"rx_bytes"` RxPackets uint64 `json:"rx_packets"` RxErrors uint64 `json:"rx_errors"` RxDropped uint64 `json:"rx_dropped"` TxBytes uint64 `json:"tx_bytes"` TxPackets uint64 `json:"tx_packets"` TxErrors uint64 `json:"tx_errors"` TxDropped uint64 `json:"tx_dropped"` }
NetworkInterface holds name of network interface and its statistics (rx_bytes, tx_bytes, etc.)
type Shares ¶
type Shares struct {
}Shares stores information regarding relative share of CPU time available to the tasks in a group
func (*Shares) GetExtendedStats ¶
func (s *Shares) GetExtendedStats(path string, ext *CgroupExtended) error
GetExtendedStats extracts integer value from cpu.shares file in given group
type Specification ¶
type Specification struct { Status string `json:"status"` Created string `json:"creation_time"` Image string `json:"image_name"` SizeRw int64 `json:"size_rw"` SizeRootFs int64 `json:"size_root_fs"` Labels map[string]string `json:"labels"` }
Specification holds docker container specification
type Statistics ¶
type Statistics struct { Network []NetworkInterface `json:"network"` Connection TcpInterface `json:"connection"` //TCP, TCP6 connection stats CgroupStats *cgroups.Stats `json:"cgroups"` CgroupsExtended *CgroupExtended `json:"cgroups_extended"` Filesystem map[string]FilesystemInterface `json:"filesystem"` }
Statistics holds all available statistics: network, tcp/tcp6, cgroups and filesystem
func NewStatistics ¶
func NewStatistics() *Statistics
NewStatistics returns pointer to initialized Statistics
type TcpInterface ¶
type TcpInterface struct { Tcp TcpStat `json:"tcp"` // TCP connection stats (Established, Listen, etc.) Tcp6 TcpStat `json:"tcp6"` // TCP6 connection stats (Established, Listen, etc.) }
TcpInterface holds tcp and tcp6 statistics
type TcpStat ¶
type TcpStat struct { //Count of TCP connections in state "Established" Established uint64 `json:"established"` //Count of TCP connections in state "Syn_Sent" SynSent uint64 `json:"syn_sent"` //Count of TCP connections in state "Syn_Recv" SynRecv uint64 `json:"syn_recv"` //Count of TCP connections in state "Fin_Wait1" FinWait1 uint64 `json:"fin_wait1"` //Count of TCP connections in state "Fin_Wait2" FinWait2 uint64 `json:"fin_wait2"` //Count of TCP connections in state "Time_Wait TimeWait uint64 `json:"time_wait"` //Count of TCP connections in state "Close" Close uint64 `json:"close"` //Count of TCP connections in state "Close_Wait" CloseWait uint64 `json:"close_wait"` //Count of TCP connections in state "Listen_Ack" LastAck uint64 `json:"last_ack"` //Count of TCP connections in state "Listen" Listen uint64 `json:"listen"` //Count of TCP connections in state "Closing" Closing uint64 `json:"closing"` }
TcpStat holds statistics about count of connections in different states