// newPodDiskStats returns stats with specified usage amounts. func newPodDiskStats(pod *api.Pod, rootFsUsed, logsUsed, perLocalVolumeUsed resource.Quantity) statsapi.PodStats { result := statsapi.PodStats{ PodRef: statsapi.PodReference{ Name: pod.Name, Namespace: pod.Namespace, UID: string(pod.UID), }, } rootFsUsedBytes := uint64(rootFsUsed.Value()) logsUsedBytes := uint64(logsUsed.Value()) for range pod.Spec.Containers { result.Containers = append(result.Containers, statsapi.ContainerStats{ Rootfs: &statsapi.FsStats{ UsedBytes: &rootFsUsedBytes, }, Logs: &statsapi.FsStats{ UsedBytes: &logsUsedBytes, }, }) } perLocalVolumeUsedBytes := uint64(perLocalVolumeUsed.Value()) for _, volumeName := range localVolumeNames(pod) { result.VolumeStats = append(result.VolumeStats, statsapi.VolumeStats{ Name: volumeName, FsStats: statsapi.FsStats{ UsedBytes: &perLocalVolumeUsedBytes, }, }) } return result }
// newPodInodeStats returns stats with specified usage amounts. // TODO: in future, this should take a value for inodesUsed per container. func newPodInodeStats(pod *api.Pod) statsapi.PodStats { result := statsapi.PodStats{ PodRef: statsapi.PodReference{ Name: pod.Name, Namespace: pod.Namespace, UID: string(pod.UID), }, } for range pod.Spec.Containers { result.Containers = append(result.Containers, statsapi.ContainerStats{ Rootfs: &statsapi.FsStats{}, }) } return result }
func newPodMemoryStats(pod *api.Pod, workingSet resource.Quantity) statsapi.PodStats { result := statsapi.PodStats{ PodRef: statsapi.PodReference{ Name: pod.Name, Namespace: pod.Namespace, UID: string(pod.UID), }, } for range pod.Spec.Containers { workingSetBytes := uint64(workingSet.Value()) result.Containers = append(result.Containers, statsapi.ContainerStats{ Memory: &statsapi.MemoryStats{ WorkingSetBytes: &workingSetBytes, }, }) } return result }
// newPodStats returns a pod stat where each container is using the specified working set // each pod must have a Name, UID, Namespace func newPodStats(pod *api.Pod, containerWorkingSetBytes int64) statsapi.PodStats { result := statsapi.PodStats{ PodRef: statsapi.PodReference{ Name: pod.Name, Namespace: pod.Namespace, UID: string(pod.UID), }, } val := uint64(containerWorkingSetBytes) for range pod.Spec.Containers { result.Containers = append(result.Containers, statsapi.ContainerStats{ Memory: &statsapi.MemoryStats{ WorkingSetBytes: &val, }, }) } return result }