Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automated cherry pick of #118549: fix 'pod' in kubelet prober metrics #119605

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
21 changes: 2 additions & 19 deletions pkg/kubelet/prober/worker.go
Expand Up @@ -18,17 +18,14 @@ package prober

import (
"context"
"fmt"
"math/rand"
"strings"
"time"

v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/component-base/metrics"
"k8s.io/klog/v2"
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
"k8s.io/kubernetes/pkg/apis/apps"
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/kubelet/prober/results"
)
Expand Down Expand Up @@ -115,20 +112,18 @@ func newWorker(
w.initialValue = results.Unknown
}

podName := getPodLabelName(w.pod)

basicMetricLabels := metrics.Labels{
"probe_type": w.probeType.String(),
"container": w.container.Name,
"pod": podName,
"pod": w.pod.Name,
"namespace": w.pod.Namespace,
"pod_uid": string(w.pod.UID),
}

proberDurationLabels := metrics.Labels{
"probe_type": w.probeType.String(),
"container": w.container.Name,
"pod": podName,
"pod": w.pod.Name,
"namespace": w.pod.Namespace,
}

Expand Down Expand Up @@ -337,15 +332,3 @@ func deepCopyPrometheusLabels(m metrics.Labels) metrics.Labels {
}
return ret
}

func getPodLabelName(pod *v1.Pod) string {
podName := pod.Name
if pod.GenerateName != "" {
podNameSlice := strings.Split(pod.Name, "-")
podName = strings.Join(podNameSlice[:len(podNameSlice)-1], "-")
if label, ok := pod.GetLabels()[apps.DefaultDeploymentUniqueLabelKey]; ok {
podName = strings.ReplaceAll(podName, fmt.Sprintf("-%s", label), "")
}
}
return podName
}
48 changes: 0 additions & 48 deletions pkg/kubelet/prober/worker_test.go
Expand Up @@ -26,7 +26,6 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/kubernetes/pkg/apis/apps"
kubepod "k8s.io/kubernetes/pkg/kubelet/pod"
"k8s.io/kubernetes/pkg/kubelet/prober/results"
"k8s.io/kubernetes/pkg/kubelet/status"
Expand Down Expand Up @@ -486,50 +485,3 @@ func TestStartupProbeDisabledByStarted(t *testing.T) {
expectContinue(t, w, w.doProbe(ctx), msg)
expectResult(t, w, results.Success, msg)
}

func TestGetPodLabelName(t *testing.T) {
testCases := []struct {
name string
pod *v1.Pod
result string
}{
{
name: "Static pod",
pod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "kube-controller-manager-k8s-master-21385161-0",
},
},
result: "kube-controller-manager-k8s-master-21385161-0",
},
{
name: "Deployment pod",
pod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "coredns-845757d86-ccqpf",
GenerateName: "coredns-845757d86-",
Labels: map[string]string{
apps.DefaultDeploymentUniqueLabelKey: "845757d86",
},
},
},
result: "coredns",
},
{
name: "ReplicaSet pod",
pod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "kube-proxy-2gmqn",
GenerateName: "kube-proxy-",
},
},
result: "kube-proxy",
},
}
for _, test := range testCases {
ret := getPodLabelName(test.pod)
if ret != test.result {
t.Errorf("Expected %s, got %s", test.result, ret)
}
}
}