本文整理汇总了Golang中github.com/google/cadvisor/info/v1.ContainerStats.Network方法的典型用法代码示例。如果您正苦于以下问题:Golang ContainerStats.Network方法的具体用法?Golang ContainerStats.Network怎么用?Golang ContainerStats.Network使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/google/cadvisor/info/v1.ContainerStats
的用法示例。
在下文中一共展示了ContainerStats.Network方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: toContainerStats
// Convert libcontainer stats to info.ContainerStats.
func toContainerStats(libcontainerStats *libcontainer.ContainerStats) *info.ContainerStats {
s := libcontainerStats.CgroupStats
ret := new(info.ContainerStats)
ret.Timestamp = time.Now()
if s != nil {
ret.Cpu.Usage.User = s.CpuStats.CpuUsage.UsageInUsermode
ret.Cpu.Usage.System = s.CpuStats.CpuUsage.UsageInKernelmode
n := len(s.CpuStats.CpuUsage.PercpuUsage)
ret.Cpu.Usage.PerCpu = make([]uint64, n)
ret.Cpu.Usage.Total = 0
for i := 0; i < n; i++ {
ret.Cpu.Usage.PerCpu[i] = s.CpuStats.CpuUsage.PercpuUsage[i]
ret.Cpu.Usage.Total += s.CpuStats.CpuUsage.PercpuUsage[i]
}
ret.DiskIo.IoServiceBytes = DiskStatsCopy(s.BlkioStats.IoServiceBytesRecursive)
ret.DiskIo.IoServiced = DiskStatsCopy(s.BlkioStats.IoServicedRecursive)
ret.DiskIo.IoQueued = DiskStatsCopy(s.BlkioStats.IoQueuedRecursive)
ret.DiskIo.Sectors = DiskStatsCopy(s.BlkioStats.SectorsRecursive)
ret.DiskIo.IoServiceTime = DiskStatsCopy(s.BlkioStats.IoServiceTimeRecursive)
ret.DiskIo.IoWaitTime = DiskStatsCopy(s.BlkioStats.IoWaitTimeRecursive)
ret.DiskIo.IoMerged = DiskStatsCopy(s.BlkioStats.IoMergedRecursive)
ret.DiskIo.IoTime = DiskStatsCopy(s.BlkioStats.IoTimeRecursive)
ret.Memory.Usage = s.MemoryStats.Usage
if v, ok := s.MemoryStats.Stats["pgfault"]; ok {
ret.Memory.ContainerData.Pgfault = v
ret.Memory.HierarchicalData.Pgfault = v
}
if v, ok := s.MemoryStats.Stats["pgmajfault"]; ok {
ret.Memory.ContainerData.Pgmajfault = v
ret.Memory.HierarchicalData.Pgmajfault = v
}
if v, ok := s.MemoryStats.Stats["total_inactive_anon"]; ok {
ret.Memory.WorkingSet = ret.Memory.Usage - v
if v, ok := s.MemoryStats.Stats["total_active_file"]; ok {
ret.Memory.WorkingSet -= v
}
}
}
// TODO(vishh): Perform a deep copy or alias libcontainer network stats.
if libcontainerStats.NetworkStats != nil {
ret.Network = *(*info.NetworkStats)(libcontainerStats.NetworkStats)
}
return ret
}
示例2: fakeStats
func (self *hyperContainerHandler) fakeStats() (*info.ContainerStats, error) {
stats := info.ContainerStats{Timestamp: time.Now()}
stats.Cpu = info.CpuStats{
Usage: info.CpuUsage{
Total: 24750780,
PerCpu: []uint64{18354559, 6396221},
User: 0,
System: 10000000,
},
LoadAverage: 0,
}
stats.DiskIo = info.DiskIoStats{
IoServiceBytes: []info.PerDiskStats{
{
Major: 253,
Minor: 8,
Stats: map[string]uint64{"Async": 5353472, "Read": 5353472, "Sync": 0, "Total": 5353472, "Write": 0},
},
},
}
stats.Memory = info.MemoryStats{
Usage: 5763072,
WorkingSet: 1871872,
ContainerData: info.MemoryStatsMemoryData{
Pgfault: 3174,
Pgmajfault: 12,
},
HierarchicalData: info.MemoryStatsMemoryData{
Pgfault: 3174,
Pgmajfault: 12,
},
}
stats.Network = info.NetworkStats{
InterfaceStats: info.InterfaceStats{
Name: "eth0",
RxBytes: 123223,
RxPackets: 128,
TxBytes: 10240,
TxPackets: 10,
},
Interfaces: []info.InterfaceStats{
{
Name: "eth0",
RxBytes: 123223,
RxPackets: 128,
TxBytes: 10240,
TxPackets: 10,
},
},
}
stats.Filesystem = []info.FsStats{}
stats.TaskStats = info.LoadStats{}
return &stats, nil
}