From f101f83c3d29e78135059bb6748b17f04db33c0c Mon Sep 17 00:00:00 2001 From: Mike Lang Date: Mon, 26 Jun 2017 11:31:27 -0700 Subject: [PATCH] controllers topology: Map metrics for single nodes * Maps metrics if there is a single pod in the controller, as per all other views. * Also added heavy commenting on the increasingly-complex render chain --- render/pod.go | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/render/pod.go b/render/pod.go index 4652d40eb..4028ca707 100644 --- a/render/pod.go +++ b/render/pod.go @@ -101,20 +101,33 @@ var ReplicaSetRenderer = ConditionalRenderer(renderKubernetesTopologies, // have connections to each other. var KubeControllerRenderer = ConditionalRenderer(renderKubernetesTopologies, MakeReduce( + // Include full deployment topology MakeFilter( + // Filter out any remaining unmatched replica sets Complement(IsTopology(report.ReplicaSet)), MakeMap( - Map2Parent([]string{report.Deployment}, NoParentsKeep, "", mapPodCounts), - MakeReduce( - MakeMap( - Map2Parent([]string{ - report.ReplicaSet, - report.DaemonSet, - }, NoParentsPseudo, UnmanagedID, nil), - PodRenderer, + // Include pod metrics previously mapped to replica sets, in deployments + PropagateSingleMetrics(report.ReplicaSet), + MakeMap( + // Map replica sets to deployments, leaving unmatched replica sets and anything else unchanged + Map2Parent([]string{report.Deployment}, NoParentsKeep, "", mapPodCounts), + MakeReduce( + // Include full replica set and daemonset topologies + MakeMap( + // Include pod metrics in mapped nodes + PropagateSingleMetrics(report.Pod), + MakeMap( + // Transform pods to replica sets, daemonsets and 'unmanaged' + Map2Parent([]string{ + report.ReplicaSet, + report.DaemonSet, + }, NoParentsPseudo, UnmanagedID, nil), + PodRenderer, + ), + ), + SelectReplicaSet, + SelectDaemonSet, ), - SelectReplicaSet, - SelectDaemonSet, ), ), ),