diff --git a/probe/kubernetes/daemonset.go b/probe/kubernetes/daemonset.go index 4e93e7a8b..3460895b3 100644 --- a/probe/kubernetes/daemonset.go +++ b/probe/kubernetes/daemonset.go @@ -48,5 +48,6 @@ func (d *daemonSet) GetNode() report.Node { DesiredReplicas: fmt.Sprint(d.Status.DesiredNumberScheduled), Replicas: fmt.Sprint(d.Status.CurrentNumberScheduled), MisscheduledReplicas: fmt.Sprint(d.Status.NumberMisscheduled), + NodeType: "Daemon Set", }) } diff --git a/probe/kubernetes/deployment.go b/probe/kubernetes/deployment.go index f67553b70..16211f7cd 100644 --- a/probe/kubernetes/deployment.go +++ b/probe/kubernetes/deployment.go @@ -54,5 +54,6 @@ func (d *deployment) GetNode(probeID string) report.Node { UnavailableReplicas: fmt.Sprint(d.Status.UnavailableReplicas), Strategy: string(d.Spec.Strategy.Type), report.ControlProbeID: probeID, + NodeType: "Deployment", }).WithLatestActiveControls(ScaleUp, ScaleDown) } diff --git a/probe/kubernetes/reporter.go b/probe/kubernetes/reporter.go index 4016e334b..a0db79273 100644 --- a/probe/kubernetes/reporter.go +++ b/probe/kubernetes/reporter.go @@ -21,6 +21,7 @@ const ( ObservedGeneration = "kubernetes_observed_generation" Replicas = "kubernetes_replicas" DesiredReplicas = "kubernetes_desired_replicas" + NodeType = "kubernetes_node_type" ) // Exposed for testing @@ -46,6 +47,7 @@ var ( ServiceMetricTemplates = PodMetricTemplates DeploymentMetadataTemplates = report.MetadataTemplates{ + NodeType: {ID: NodeType, Label: "Type", From: report.FromLatest, Priority: 1}, Namespace: {ID: Namespace, Label: "Namespace", From: report.FromLatest, Priority: 2}, Created: {ID: Created, Label: "Created", From: report.FromLatest, Datatype: "datetime", Priority: 3}, ObservedGeneration: {ID: ObservedGeneration, Label: "Observed Gen.", From: report.FromLatest, Datatype: "number", Priority: 4}, @@ -67,6 +69,7 @@ var ( ReplicaSetMetricTemplates = PodMetricTemplates DaemonSetMetadataTemplates = report.MetadataTemplates{ + NodeType: {ID: NodeType, Label: "Type", From: report.FromLatest, Priority: 1}, Namespace: {ID: Namespace, Label: "Namespace", From: report.FromLatest, Priority: 2}, Created: {ID: Created, Label: "Created", From: report.FromLatest, Datatype: "datetime", Priority: 3}, DesiredReplicas: {ID: DesiredReplicas, Label: "Desired Replicas", From: report.FromLatest, Datatype: "number", Priority: 4}, diff --git a/render/detailed/summary.go b/render/detailed/summary.go index 773039a26..5ba4061e3 100644 --- a/render/detailed/summary.go +++ b/render/detailed/summary.go @@ -257,13 +257,24 @@ func podNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) { return base, true } +var podGroupNodeTypeName = map[string]string{ + report.Deployment: "Deployment", + report.DaemonSet: "Daemon Set", + report.ReplicaSet: "Replica Set", +} + func podGroupNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) { base = addKubernetesLabelAndRank(base, n) base.Stack = true // NB: pods are the highest aggregation level for which we display // counts. - base.LabelMinor = pluralize(n.Counters, report.Pod, "pod", "pods") + count := pluralize(n.Counters, report.Pod, "pod", "pods") + if typeName, ok := podGroupNodeTypeName[n.Topology]; ok { + base.LabelMinor = fmt.Sprintf("%s of %s", typeName, count) + } else { + base.LabelMinor = count + } return base, true }