From c625b8e552b5a8b3590f5d4026a957ac89c1d039 Mon Sep 17 00:00:00 2001 From: derailed Date: Thu, 2 Jan 2020 08:08:00 -0700 Subject: [PATCH] fix metrics issue in all namespaces --- internal/client/metrics.go | 12 ++++++++++++ internal/view/pod.go | 1 - 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/internal/client/metrics.go b/internal/client/metrics.go index e4f5061f..e300bee3 100644 --- a/internal/client/metrics.go +++ b/internal/client/metrics.go @@ -8,6 +8,11 @@ import ( mv1beta1 "k8s.io/metrics/pkg/apis/metrics/v1beta1" ) +const ( + NamespaceAll = "all" + AllNamespaces = "" +) + type ( // MetricsServer serves cluster metrics for nodes and pods. MetricsServer struct { @@ -116,6 +121,10 @@ func (m *MetricsServer) FetchNodesMetrics() (*mv1beta1.NodeMetricsList, error) { // FetchPodsMetrics return all metrics for pods in a given namespace. func (m *MetricsServer) FetchPodsMetrics(ns string) (*mv1beta1.PodMetricsList, error) { + if ns == NamespaceAll { + ns = AllNamespaces + } + auth, err := m.CanI(ns, "metrics.k8s.io/v1beta1/pods", []string{"list"}) if !auth || err != nil { return &mv1beta1.PodMetricsList{}, err @@ -131,6 +140,9 @@ func (m *MetricsServer) FetchPodsMetrics(ns string) (*mv1beta1.PodMetricsList, e // FetchPodMetrics return all metrics for pods in a given namespace. func (m *MetricsServer) FetchPodMetrics(ns, sel string) (*mv1beta1.PodMetrics, error) { + if ns == NamespaceAll { + ns = AllNamespaces + } auth, err := m.CanI(ns, "metrics.k8s.io/v1beta1/pods", []string{"get"}) if !auth || err != nil { return nil, err diff --git a/internal/view/pod.go b/internal/view/pod.go index fbc83a2a..978ad0c7 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -68,7 +68,6 @@ func (p *Pod) podContext(ctx context.Context) context.Context { log.Error().Err(fmt.Errorf("Expecting context namespace")) } - log.Debug().Msgf("POD METRICS in NS %q", ns) mx := client.NewMetricsServer(p.App().factory.Client()) nmx, err := mx.FetchPodsMetrics(ns) if err != nil {