Skip to content

Commit

Permalink
utilization numbers working for containers
Browse files Browse the repository at this point in the history
  • Loading branch information
robscott committed Apr 2, 2019
1 parent 26e974a commit a9ddac7
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 23 deletions.
32 changes: 16 additions & 16 deletions pkg/capacity/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,37 +141,37 @@ func TestBuildListClusterMetricsAllOptions(t *testing.T) {
Name: "example-container-1",
CPU: &listResourceOutput{
Requests: "450m",
RequestsPct: "-9223372036854775808%",
RequestsPct: "45%",
Limits: "560m",
LimitsPct: "-9223372036854775808%",
Utilization: "0m",
UtilizationPct: "-9223372036854775808%",
LimitsPct: "56%",
Utilization: "40m",
UtilizationPct: "4%",
},
Memory: &listResourceOutput{
Requests: "160Mi",
RequestsPct: "-9223372036854775808%",
RequestsPct: "4%",
Limits: "280Mi",
LimitsPct: "-9223372036854775808%",
Utilization: "0Mi",
UtilizationPct: "-9223372036854775808%",
LimitsPct: "7%",
Utilization: "288Mi",
UtilizationPct: "7%",
},
}, {
Name: "example-container-2",
CPU: &listResourceOutput{
Requests: "200m",
RequestsPct: "-9223372036854775808%",
RequestsPct: "20%",
Limits: "250m",
LimitsPct: "-9223372036854775808%",
Utilization: "0m",
UtilizationPct: "-9223372036854775808%",
LimitsPct: "25%",
Utilization: "23m",
UtilizationPct: "2%",
},
Memory: &listResourceOutput{
Requests: "250Mi",
RequestsPct: "-9223372036854775808%",
RequestsPct: "6%",
Limits: "300Mi",
LimitsPct: "-9223372036854775808%",
Utilization: "0Mi",
UtilizationPct: "-9223372036854775808%",
LimitsPct: "7%",
Utilization: "151Mi",
UtilizationPct: "3%",
},
},
},
Expand Down
15 changes: 10 additions & 5 deletions pkg/capacity/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ type podMetric struct {
namespace string
cpu *resourceMetric
memory *resourceMetric
containers []*containerMetric
containers map[string]*containerMetric
}

type containerMetric struct {
Expand All @@ -68,6 +68,7 @@ func (rm *resourceMetric) addMetric(m *resourceMetric) {
func (cm *clusterMetric) addPodMetric(pod *corev1.Pod, podMetrics v1beta1.PodMetrics) {
req, limit := resourcehelper.PodRequestsAndLimits(pod)
key := fmt.Sprintf("%s-%s", pod.Namespace, pod.Name)
nm := cm.nodeMetrics[pod.Spec.NodeName]

pm := &podMetric{
name: pod.Name,
Expand All @@ -82,28 +83,29 @@ func (cm *clusterMetric) addPodMetric(pod *corev1.Pod, podMetrics v1beta1.PodMet
request: req["memory"],
limit: limit["memory"],
},
containers: []*containerMetric{},
containers: map[string]*containerMetric{},
}

for _, container := range pod.Spec.Containers {
pm.containers = append(pm.containers, &containerMetric{
pm.containers[container.Name] = &containerMetric{
name: container.Name,
cpu: &resourceMetric{
resourceType: "cpu",
request: container.Resources.Requests["cpu"],
limit: container.Resources.Limits["cpu"],
allocatable: nm.cpu.allocatable,
},
memory: &resourceMetric{
resourceType: "memory",
request: container.Resources.Requests["memory"],
limit: container.Resources.Limits["memory"],
allocatable: nm.memory.allocatable,
},
})
}
}

cm.podMetrics[key] = pm

nm := cm.nodeMetrics[pod.Spec.NodeName]
if nm != nil {
cm.cpu.request.Add(req["cpu"])
cm.cpu.limit.Add(limit["cpu"])
Expand All @@ -113,14 +115,17 @@ func (cm *clusterMetric) addPodMetric(pod *corev1.Pod, podMetrics v1beta1.PodMet
cm.podMetrics[key].cpu.allocatable = nm.cpu.allocatable
cm.podMetrics[key].memory.allocatable = nm.memory.allocatable
nm.podMetrics[key] = cm.podMetrics[key]

nm.cpu.request.Add(req["cpu"])
nm.cpu.limit.Add(limit["cpu"])
nm.memory.request.Add(req["memory"])
nm.memory.limit.Add(limit["memory"])
}

for _, container := range podMetrics.Containers {
pm.containers[container.Name].cpu.utilization = container.Usage["cpu"]
pm.cpu.utilization.Add(container.Usage["cpu"])
pm.containers[container.Name].memory.utilization = container.Usage["memory"]
pm.memory.utilization.Add(container.Usage["memory"])

if nm == nil {
Expand Down
4 changes: 2 additions & 2 deletions pkg/capacity/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,10 @@ func (tp *tablePrinter) printContainerLine(nodeName string, pm *podMetric, cm *c
container: cm.name,
cpuRequests: cm.cpu.requestString(),
cpuLimits: cm.cpu.limitString(),
cpuUtil: "",
cpuUtil: cm.cpu.utilString(),
memoryRequests: cm.memory.requestString(),
memoryLimits: cm.memory.limitString(),
memoryUtil: "",
memoryUtil: cm.memory.utilString(),
})
}

Expand Down

0 comments on commit a9ddac7

Please sign in to comment.