Documentation ¶
Index ¶
- Constants
- type Attributes
- type ContainerInfo
- type ContainerSpec
- type ContainerStats
- type CpuInstStats
- type CpuInstUsage
- type CpuSpec
- type DeprecatedContainerStats
- type DerivedStats
- type DiskStats
- type FilesystemStats
- type FsInfo
- type InstantUsage
- type MachineFsStats
- type MachineStats
- type MemorySpec
- type NetworkStats
- type Percentiles
- type ProcessInfo
- type RequestOptions
- type TcpStat
- type Usage
Constants ¶
View Source
const ( TypeName = "name" TypeDocker = "docker" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attributes ¶
type Attributes struct { // Kernel version. KernelVersion string `json:"kernel_version"` // OS image being used for cadvisor container, or host image if running on host directly. ContainerOsVersion string `json:"container_os_version"` // Docker version. DockerVersion string `json:"docker_version"` // Docker API version. DockerAPIVersion string `json:"docker_api_version"` // cAdvisor version. CadvisorVersion string `json:"cadvisor_version"` // The number of cores in this machine. NumCores int `json:"num_cores"` // Maximum clock speed for the cores, in KHz. CpuFrequency uint64 `json:"cpu_frequency_khz"` // The amount of memory (in bytes) in this machine MemoryCapacity uint64 `json:"memory_capacity"` // The machine id MachineID string `json:"machine_id"` // The system uuid SystemUUID string `json:"system_uuid"` // HugePages on this machine. HugePages []v1.HugePagesInfo `json:"hugepages"` // Filesystems on this machine. Filesystems []v1.FsInfo `json:"filesystems"` // Disk map DiskMap map[string]v1.DiskInfo `json:"disk_map"` // Network devices NetworkDevices []v1.NetInfo `json:"network_devices"` // Machine Topology // Describes cpu/memory layout and hierarchy. Topology []v1.Node `json:"topology"` // Cloud provider the machine belongs to CloudProvider v1.CloudProvider `json:"cloud_provider"` // Type of cloud instance (e.g. GCE standard) the machine is. InstanceType v1.InstanceType `json:"instance_type"` }
func GetAttributes ¶
func GetAttributes(mi *v1.MachineInfo, vi *v1.VersionInfo) Attributes
type ContainerInfo ¶ added in v0.20.2
type ContainerInfo struct { // Describes the container. Spec ContainerSpec `json:"spec,omitempty"` // Historical statistics gathered from the container. Stats []*ContainerStats `json:"stats,omitempty"` }
type ContainerSpec ¶
type ContainerSpec struct { // Time at which the container was created. CreationTime time.Time `json:"creation_time,omitempty"` // Other names by which the container is known within a certain namespace. // This is unique within that namespace. Aliases []string `json:"aliases,omitempty"` // Namespace under which the aliases of a container are unique. // An example of a namespace is "docker" for Docker containers. Namespace string `json:"namespace,omitempty"` // Metadata labels associated with this container. Labels map[string]string `json:"labels,omitempty"` // Metadata envs associated with this container. Only whitelisted envs are added. Envs map[string]string `json:"envs,omitempty"` HasCpu bool `json:"has_cpu"` Cpu CpuSpec `json:"cpu,omitempty"` HasMemory bool `json:"has_memory"` Memory MemorySpec `json:"memory,omitempty"` HasCustomMetrics bool `json:"has_custom_metrics"` CustomMetrics []v1.MetricSpec `json:"custom_metrics,omitempty"` // Following resources have no associated spec, but are being isolated. HasNetwork bool `json:"has_network"` HasFilesystem bool `json:"has_filesystem"` HasDiskIo bool `json:"has_diskio"` // Image name used for this container. Image string `json:"image,omitempty"` }
func ContainerSpecFromV1 ¶ added in v0.20.2
func ContainerSpecFromV1(specV1 *v1.ContainerSpec, aliases []string, namespace string) ContainerSpec
Get V2 container spec from v1 container info.
type ContainerStats ¶
type ContainerStats struct { // The time of this stat point. Timestamp time.Time `json:"timestamp"` // CPU statistics // In nanoseconds (aggregated) Cpu *v1.CpuStats `json:"cpu,omitempty"` // In nanocores per second (instantaneous) CpuInst *CpuInstStats `json:"cpu_inst,omitempty"` // Disk IO statistics DiskIo *v1.DiskIoStats `json:"diskio,omitempty"` // Memory statistics Memory *v1.MemoryStats `json:"memory,omitempty"` // Network statistics Network *NetworkStats `json:"network,omitempty"` // Filesystem statistics Filesystem *FilesystemStats `json:"filesystem,omitempty"` // Task load statistics Load *v1.LoadStats `json:"load_stats,omitempty"` // Metrics for Accelerators. Each Accelerator corresponds to one element in the array. Accelerators []v1.AcceleratorStats `json:"accelerators,omitempty"` // Custom Metrics CustomMetrics map[string][]v1.MetricVal `json:"custom_metrics,omitempty"` }
func ContainerStatsFromV1 ¶ added in v0.20.2
func ContainerStatsFromV1(containerName string, spec *v1.ContainerSpec, stats []*v1.ContainerStats) []*ContainerStats
type CpuInstStats ¶
type CpuInstStats struct {
Usage CpuInstUsage `json:"usage"`
}
Instantaneous CPU stats
func InstCpuStats ¶ added in v0.20.2
func InstCpuStats(last, cur *v1.ContainerStats) (*CpuInstStats, error)
type CpuInstUsage ¶
type CpuInstUsage struct { // Total CPU usage. // Units: nanocores per second Total uint64 `json:"total"` // Per CPU/core usage of the container. // Unit: nanocores per second PerCpu []uint64 `json:"per_cpu_usage,omitempty"` // Time spent in user space. // Unit: nanocores per second User uint64 `json:"user"` // Time spent in kernel space. // Unit: nanocores per second System uint64 `json:"system"` }
CPU usage time statistics.
type CpuSpec ¶
type CpuSpec struct { // Requested cpu shares. Default is 1024. Limit uint64 `json:"limit"` // Requested cpu hard limit. Default is unlimited (0). // Units: milli-cpus. MaxLimit uint64 `json:"max_limit"` // Cpu affinity mask. // TODO(rjnagal): Add a library to convert mask string to set of cpu bitmask. Mask string `json:"mask,omitempty"` // CPUQuota Default is disabled Quota uint64 `json:"quota,omitempty"` // Period is the CPU reference time in ns e.g the quota is compared against this. Period uint64 `json:"period,omitempty"` }
type DeprecatedContainerStats ¶ added in v0.20.2
type DeprecatedContainerStats struct { // The time of this stat point. Timestamp time.Time `json:"timestamp"` // CPU statistics HasCpu bool `json:"has_cpu"` // In nanoseconds (aggregated) Cpu v1.CpuStats `json:"cpu,omitempty"` // In nanocores per second (instantaneous) CpuInst *CpuInstStats `json:"cpu_inst,omitempty"` // Disk IO statistics HasDiskIo bool `json:"has_diskio"` DiskIo v1.DiskIoStats `json:"diskio,omitempty"` // Memory statistics HasMemory bool `json:"has_memory"` Memory v1.MemoryStats `json:"memory,omitempty"` // Network statistics HasNetwork bool `json:"has_network"` Network NetworkStats `json:"network,omitempty"` // Filesystem statistics HasFilesystem bool `json:"has_filesystem"` Filesystem []v1.FsStats `json:"filesystem,omitempty"` // Task load statistics HasLoad bool `json:"has_load"` Load v1.LoadStats `json:"load_stats,omitempty"` // Custom Metrics HasCustomMetrics bool `json:"has_custom_metrics"` CustomMetrics map[string][]v1.MetricVal `json:"custom_metrics,omitempty"` }
func DeprecatedStatsFromV1 ¶ added in v0.20.2
func DeprecatedStatsFromV1(cont *v1.ContainerInfo) []DeprecatedContainerStats
type DerivedStats ¶
type DerivedStats struct { // Time of generation of these stats. Timestamp time.Time `json:"timestamp"` // Latest instantaneous sample. LatestUsage InstantUsage `json:"latest_usage"` // Percentiles in last observed minute. MinuteUsage Usage `json:"minute_usage"` // Percentile in last hour. HourUsage Usage `json:"hour_usage"` // Percentile in last day. DayUsage Usage `json:"day_usage"` }
type DiskStats ¶ added in v0.20.2
type DiskStats struct { // Number of reads completed // This is the total number of reads completed successfully. ReadsCompleted *uint64 `json:"reads_completed,omitempty"` // Number of reads merged // Reads and writes which are adjacent to each other may be merged for // efficiency. Thus two 4K reads may become one 8K read before it is // ultimately handed to the disk, and so it will be counted (and queued) // as only one I/O. This field lets you know how often this was done. ReadsMerged *uint64 `json:"reads_merged,omitempty"` // Number of sectors read // This is the total number of sectors read successfully. SectorsRead *uint64 `json:"sectors_read,omitempty"` // Time spent reading // This is the total number of milliseconds spent by all reads (as // measured from __make_request() to end_that_request_last()). ReadDuration *time.Duration `json:"read_duration,omitempty"` // Number of writes completed // This is the total number of writes completed successfully. WritesCompleted *uint64 `json:"writes_completed,omitempty"` // Number of writes merged // See the description of reads merged. WritesMerged *uint64 `json:"writes_merged,omitempty"` // Number of sectors written // This is the total number of sectors written successfully. SectorsWritten *uint64 `json:"sectors_written,omitempty"` // Time spent writing // This is the total number of milliseconds spent by all writes (as // measured from __make_request() to end_that_request_last()). WriteDuration *time.Duration `json:"write_duration,omitempty"` // Number of I/Os currently in progress // The only field that should go to zero. Incremented as requests are // given to appropriate struct request_queue and decremented as they finish. IoInProgress *uint64 `json:"io_in_progress,omitempty"` // Time spent doing I/Os // This field increases so long as field 9 is nonzero. IoDuration *time.Duration `json:"io_duration,omitempty"` // weighted time 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. WeightedIoDuration *time.Duration `json:"weighted_io_duration,omitempty"` }
DiskStats contains per partition usage information. This information is only available at the machine level.
type FilesystemStats ¶ added in v0.20.2
type FilesystemStats struct { // Total Number of bytes consumed by container. TotalUsageBytes *uint64 `json:"totalUsageBytes,omitempty"` // Number of bytes consumed by a container through its root filesystem. BaseUsageBytes *uint64 `json:"baseUsageBytes,omitempty"` // Number of inodes used within the container's root filesystem. // This only accounts for inodes that are shared across containers, // and does not include inodes used in mounted directories. InodeUsage *uint64 `json:"containter_inode_usage,omitempty"` }
Filesystem usage statistics.
type FsInfo ¶
type FsInfo struct { // Time of generation of these stats. Timestamp time.Time `json:"timestamp"` // The block device name associated with the filesystem. Device string `json:"device"` // Path where the filesystem is mounted. Mountpoint string `json:"mountpoint"` // Filesystem usage in bytes. Capacity uint64 `json:"capacity"` // Bytes available for non-root use. Available uint64 `json:"available"` // Number of bytes used on this filesystem. Usage uint64 `json:"usage"` // Labels associated with this filesystem. Labels []string `json:"labels"` // Number of Inodes. Inodes *uint64 `json:"inodes,omitempty"` // Number of available Inodes (if known) InodesFree *uint64 `json:"inodes_free,omitempty"` }
type InstantUsage ¶
type InstantUsage struct { // cpu rate in cpu milliseconds/second. Cpu uint64 `json:"cpu"` // Memory usage in bytes. Memory uint64 `json:"memory"` }
latest sample collected for a container.
type MachineFsStats ¶ added in v0.20.2
type MachineFsStats struct { // The block device name associated with the filesystem. Device string `json:"device"` // Type of filesystem. Type string `json:"type"` // Number of bytes that can be consumed on this filesystem. Capacity *uint64 `json:"capacity,omitempty"` // Number of bytes that is currently consumed on this filesystem. Usage *uint64 `json:"usage,omitempty"` // Number of bytes available for non-root user on this filesystem. Available *uint64 `json:"available,omitempty"` // Number of inodes that are available on this filesystem. InodesFree *uint64 `json:"inodes_free,omitempty"` // DiskStats for this device. DiskStats `json:"inline"` }
MachineFsStats contains per filesystem capacity and usage information.
type MachineStats ¶ added in v0.20.2
type MachineStats struct { // The time of this stat point. Timestamp time.Time `json:"timestamp"` // In nanoseconds (aggregated) Cpu *v1.CpuStats `json:"cpu,omitempty"` // In nanocores per second (instantaneous) CpuInst *CpuInstStats `json:"cpu_inst,omitempty"` // Memory statistics Memory *v1.MemoryStats `json:"memory,omitempty"` // Network statistics Network *NetworkStats `json:"network,omitempty"` // Filesystem statistics Filesystem []MachineFsStats `json:"filesystem,omitempty"` // Task load statistics Load *v1.LoadStats `json:"load_stats,omitempty"` }
MachineStats contains usage statistics for the entire machine.
func MachineStatsFromV1 ¶ added in v0.20.2
func MachineStatsFromV1(cont *v1.ContainerInfo) []MachineStats
type MemorySpec ¶
type MemorySpec struct { // The amount of memory requested. Default is unlimited (-1). // Units: bytes. Limit uint64 `json:"limit,omitempty"` // The amount of guaranteed memory. Default is 0. // Units: bytes. Reservation uint64 `json:"reservation,omitempty"` // The amount of swap space requested. Default is unlimited (-1). // Units: bytes. SwapLimit uint64 `json:"swap_limit,omitempty"` }
type NetworkStats ¶
type NetworkStats struct { // Network stats by interface. Interfaces []v1.InterfaceStats `json:"interfaces,omitempty"` // TCP connection stats (Established, Listen...) Tcp TcpStat `json:"tcp"` // TCP6 connection stats (Established, Listen...) Tcp6 TcpStat `json:"tcp6"` // UDP connection stats Udp v1.UdpStat `json:"udp"` // UDP6 connection stats Udp6 v1.UdpStat `json:"udp6"` }
type Percentiles ¶
type Percentiles struct { // Indicates whether the stats are present or not. // If true, values below do not have any data. Present bool `json:"present"` // Average over the collected sample. Mean uint64 `json:"mean"` // Max seen over the collected sample. Max uint64 `json:"max"` // 50th percentile over the collected sample. Fifty uint64 `json:"fifty"` // 90th percentile over the collected sample. Ninety uint64 `json:"ninety"` // 95th percentile over the collected sample. NinetyFive uint64 `json:"ninetyfive"` }
type ProcessInfo ¶
type ProcessInfo struct { User string `json:"user"` Pid int `json:"pid"` Ppid int `json:"parent_pid"` StartTime string `json:"start_time"` PercentCpu float32 `json:"percent_cpu"` PercentMemory float32 `json:"percent_mem"` RSS uint64 `json:"rss"` VirtualSize uint64 `json:"virtual_size"` Status string `json:"status"` RunningTime string `json:"running_time"` CgroupPath string `json:"cgroup_path"` Cmd string `json:"cmd"` FdCount int `json:"fd_count"` }
type RequestOptions ¶
type RequestOptions struct { // Type of container identifier specified - "name", "dockerid", dockeralias" IdType string `json:"type"` // Number of stats to return Count int `json:"count"` // Whether to include stats for child subcontainers. Recursive bool `json:"recursive"` // Update stats if they are older than MaxAge // nil indicates no update, and 0 will always trigger an update. MaxAge *time.Duration `json:"max_age"` }
type Usage ¶
type Usage struct { // Indicates amount of data available [0-100]. // If we have data for half a day, we'll still process DayUsage, // but set PercentComplete to 50. PercentComplete int32 `json:"percent_complete"` // Mean, Max, and 90p cpu rate value in milliCpus/seconds. Converted to milliCpus to avoid floats. Cpu Percentiles `json:"cpu"` // Mean, Max, and 90p memory size in bytes. Memory Percentiles `json:"memory"` }
Click to show internal directories.
Click to hide internal directories.