agent/cgroup/stats.go (19 lines of code) (raw):
// +build linux
package cgroup
type Stats struct {
CpuStats CpuStats `json:"cpu_stats,omitempty"`
}
type CpuUsage struct {
// Total CPU time consumed (in nanoseconds).
TotalUsage uint64 `json:"total_usage,omitempty"`
// Total CPU time consumed per core (in nanoseconds).
PercpuUsage []uint64 `json:"percpu_usage,omitempty"`
// Time spent by tasks of the cgroup in kernel mode (in nanoseconds).
UsageInKernelmode uint64 `json:"usage_in_kernelmode"`
// Time spent by tasks of the cgroup in user mode (in nanoseconds).
UsageInUsermode uint64 `json:"usage_in_usermode"`
}
type ThrottlingData struct {
// Number of periods with throttling active.
Periods uint64 `json:"nr_periods,omitempty"`
// Number of times when the tasks have been throttled.
ThrottledPeriods uint64 `json:"nr_throttled,omitempty"`
// Aggregate time when the tasks have been throttled (in nanoseconds).
ThrottledTime uint64 `json:"throttled_time,omitempty"`
}
type CpuStats struct {
CpuUsage CpuUsage `json:"cpu_usage,omitempty"`
ThrottlingData ThrottlingData `json:"throttling_data,omitempty"`
}