* Add a new lint rule to the Makefile Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com> * Fix linter errors Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com> * Allow replacing the default apt mirror Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
		
			
				
	
	
		
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package runtime
 | 
						|
 | 
						|
import "time"
 | 
						|
 | 
						|
// Stat holds a container statistics
 | 
						|
type Stat struct {
 | 
						|
	// Timestamp is the time that the statistics where collected
 | 
						|
	Timestamp time.Time
 | 
						|
	CPU       CPU                `json:"cpu"`
 | 
						|
	Memory    Memory             `json:"memory"`
 | 
						|
	Pids      Pids               `json:"pids"`
 | 
						|
	Blkio     Blkio              `json:"blkio"`
 | 
						|
	Hugetlb   map[string]Hugetlb `json:"hugetlb"`
 | 
						|
}
 | 
						|
 | 
						|
// Hugetlb holds information regarding a container huge tlb usage
 | 
						|
type Hugetlb struct {
 | 
						|
	Usage   uint64 `json:"usage,omitempty"`
 | 
						|
	Max     uint64 `json:"max,omitempty"`
 | 
						|
	Failcnt uint64 `json:"failcnt"`
 | 
						|
}
 | 
						|
 | 
						|
// BlkioEntry represents a single record for a Blkio stat
 | 
						|
type BlkioEntry struct {
 | 
						|
	Major uint64 `json:"major,omitempty"`
 | 
						|
	Minor uint64 `json:"minor,omitempty"`
 | 
						|
	Op    string `json:"op,omitempty"`
 | 
						|
	Value uint64 `json:"value,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
// Blkio regroups all the Blkio related stats
 | 
						|
type Blkio struct {
 | 
						|
	IoServiceBytesRecursive []BlkioEntry `json:"ioServiceBytesRecursive,omitempty"`
 | 
						|
	IoServicedRecursive     []BlkioEntry `json:"ioServicedRecursive,omitempty"`
 | 
						|
	IoQueuedRecursive       []BlkioEntry `json:"ioQueueRecursive,omitempty"`
 | 
						|
	IoServiceTimeRecursive  []BlkioEntry `json:"ioServiceTimeRecursive,omitempty"`
 | 
						|
	IoWaitTimeRecursive     []BlkioEntry `json:"ioWaitTimeRecursive,omitempty"`
 | 
						|
	IoMergedRecursive       []BlkioEntry `json:"ioMergedRecursive,omitempty"`
 | 
						|
	IoTimeRecursive         []BlkioEntry `json:"ioTimeRecursive,omitempty"`
 | 
						|
	SectorsRecursive        []BlkioEntry `json:"sectorsRecursive,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
// Pids holds the stat of the pid usage of the machine
 | 
						|
type Pids struct {
 | 
						|
	Current uint64 `json:"current,omitempty"`
 | 
						|
	Limit   uint64 `json:"limit,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
// Throttling holds a cpu throttling information
 | 
						|
type Throttling struct {
 | 
						|
	Periods          uint64 `json:"periods,omitempty"`
 | 
						|
	ThrottledPeriods uint64 `json:"throttledPeriods,omitempty"`
 | 
						|
	ThrottledTime    uint64 `json:"throttledTime,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
// CPUUsage holds information regarding cpu usage
 | 
						|
type CPUUsage struct {
 | 
						|
	// Units: nanoseconds.
 | 
						|
	Total  uint64   `json:"total,omitempty"`
 | 
						|
	Percpu []uint64 `json:"percpu,omitempty"`
 | 
						|
	Kernel uint64   `json:"kernel"`
 | 
						|
	User   uint64   `json:"user"`
 | 
						|
}
 | 
						|
 | 
						|
// CPU regroups both a CPU usage and throttling information
 | 
						|
type CPU struct {
 | 
						|
	Usage      CPUUsage   `json:"usage,omitempty"`
 | 
						|
	Throttling Throttling `json:"throttling,omitempty"`
 | 
						|
}
 | 
						|
 | 
						|
// MemoryEntry regroups statistic about a given type of memory
 | 
						|
type MemoryEntry struct {
 | 
						|
	Limit   uint64 `json:"limit"`
 | 
						|
	Usage   uint64 `json:"usage,omitempty"`
 | 
						|
	Max     uint64 `json:"max,omitempty"`
 | 
						|
	Failcnt uint64 `json:"failcnt"`
 | 
						|
}
 | 
						|
 | 
						|
// Memory holds information regarding the different type of memories available
 | 
						|
type Memory struct {
 | 
						|
	Cache     uint64            `json:"cache,omitempty"`
 | 
						|
	Usage     MemoryEntry       `json:"usage,omitempty"`
 | 
						|
	Swap      MemoryEntry       `json:"swap,omitempty"`
 | 
						|
	Kernel    MemoryEntry       `json:"kernel,omitempty"`
 | 
						|
	KernelTCP MemoryEntry       `json:"kernelTCP,omitempty"`
 | 
						|
	Raw       map[string]uint64 `json:"raw,omitempty"`
 | 
						|
}
 |