From 27fb3571e16011109c9e5607f22a30397839feee Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Mon, 2 Apr 2018 09:49:06 +0100 Subject: [PATCH 1/2] refactor: remove StateDeleted from map keys since it is a map value, not a key. --- probe/kubernetes/pod.go | 5 +++-- report/map_keys.go | 1 - report/report.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/probe/kubernetes/pod.go b/probe/kubernetes/pod.go index 688f533689..fb19f6515e 100644 --- a/probe/kubernetes/pod.go +++ b/probe/kubernetes/pod.go @@ -13,10 +13,11 @@ const ( State = report.KubernetesState IsInHostNetwork = report.KubernetesIsInHostNetwork RestartCount = report.KubernetesRestartCount - - StateDeleted = "deleted" ) +// Pod states we handle specially +const StateDeleted = "deleted" + // Pod represents a Kubernetes pod type Pod interface { Meta diff --git a/report/map_keys.go b/report/map_keys.go index deb28b38a1..8cfaf35631 100644 --- a/report/map_keys.go +++ b/report/map_keys.go @@ -69,7 +69,6 @@ const ( KubernetesSuspended = "kubernetes_suspended" KubernetesLastScheduled = "kubernetes_last_scheduled" KubernetesActiveJobs = "kubernetes_active_jobs" - KubernetesStateDeleted = "deleted" KubernetesType = "kubernetes_type" KubernetesPorts = "kubernetes_ports" // probe/awsecs diff --git a/report/report.go b/report/report.go index ac70aade6a..3542f3b18a 100644 --- a/report/report.go +++ b/report/report.go @@ -454,7 +454,7 @@ func (r Report) upgradeNamespaces() Report { namespaces := map[string]struct{}{} for _, t := range []Topology{r.Pod, r.Service, r.Deployment, r.DaemonSet, r.StatefulSet, r.CronJob} { for _, n := range t.Nodes { - if state, ok := n.Latest.Lookup(KubernetesState); ok && state == KubernetesStateDeleted { + if state, ok := n.Latest.Lookup(KubernetesState); ok && state == "deleted" { continue } if namespace, ok := n.Latest.Lookup(KubernetesNamespace); ok { From feae4f4fcf7873aaf61b11b040aed473005fd8ad Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Mon, 2 Apr 2018 10:09:13 +0100 Subject: [PATCH 2/2] don't show Failed pods these are not alive, and Scope generally only shows the living, not the dead. --- probe/kubernetes/pod.go | 5 ++++- render/pod.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/probe/kubernetes/pod.go b/probe/kubernetes/pod.go index fb19f6515e..9c8283dbd4 100644 --- a/probe/kubernetes/pod.go +++ b/probe/kubernetes/pod.go @@ -16,7 +16,10 @@ const ( ) // Pod states we handle specially -const StateDeleted = "deleted" +const ( + StateDeleted = "deleted" + StateFailed = "Failed" +) // Pod represents a Kubernetes pod type Pod interface { diff --git a/render/pod.go b/render/pod.go index 0651ca141a..ee9c68b92c 100644 --- a/render/pod.go +++ b/render/pod.go @@ -46,7 +46,7 @@ var PodRenderer = Memoise(ConditionalRenderer(renderKubernetesTopologies, MakeFilter( func(n report.Node) bool { state, ok := n.Latest.Lookup(kubernetes.State) - return (!ok || state != kubernetes.StateDeleted) + return !ok || !(state == kubernetes.StateDeleted || state == kubernetes.StateFailed) }, MakeReduce( PropagateSingleMetrics(report.Container,