diff --git a/probe/kubernetes/pod.go b/probe/kubernetes/pod.go index 688f53368..9c8283dbd 100644 --- a/probe/kubernetes/pod.go +++ b/probe/kubernetes/pod.go @@ -13,8 +13,12 @@ const ( State = report.KubernetesState IsInHostNetwork = report.KubernetesIsInHostNetwork RestartCount = report.KubernetesRestartCount +) +// Pod states we handle specially +const ( StateDeleted = "deleted" + StateFailed = "Failed" ) // Pod represents a Kubernetes pod diff --git a/render/pod.go b/render/pod.go index 0651ca141..ee9c68b92 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, diff --git a/report/map_keys.go b/report/map_keys.go index deb28b38a..8cfaf3563 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 ac70aade6..3542f3b18 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 {