Better URL for scraping metrics from kubelet
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
@@ -40,6 +40,7 @@ import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||
"k8s.io/apimachinery/pkg/util/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
@@ -289,7 +290,7 @@ func logKubeletLatencyMetrics(ctx context.Context, metricNames ...string) {
|
||||
for _, key := range metricNames {
|
||||
metricSet.Insert(kubeletmetrics.KubeletSubsystem + "_" + key)
|
||||
}
|
||||
metric, err := e2emetrics.GrabKubeletMetricsWithoutProxy(ctx, fmt.Sprintf("%s:%d", framework.TestContext.NodeName, ports.KubeletReadOnlyPort), "/metrics")
|
||||
metric, err := e2emetrics.GrabKubeletMetricsWithoutProxy(ctx, fmt.Sprintf("%s:%d", nodeNameOrIP(), ports.KubeletReadOnlyPort), "/metrics")
|
||||
if err != nil {
|
||||
framework.Logf("Error getting kubelet metrics: %v", err)
|
||||
} else {
|
||||
@@ -623,3 +624,22 @@ func WaitForPodInitContainerToFail(ctx context.Context, c clientset.Interface, n
|
||||
return false, nil
|
||||
})
|
||||
}
|
||||
|
||||
func nodeNameOrIP() string {
|
||||
// Check if the node name in test context can be resolved
|
||||
if ips, err := net.LookupIP(framework.TestContext.NodeName); err != nil {
|
||||
if dnsErr, ok := err.(*net.DNSError); ok && dnsErr.IsNotFound {
|
||||
// if it can't be resolved, pick a host interface
|
||||
if ip, err := utilnet.ChooseHostInterface(); err == nil {
|
||||
return ip.String()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if len(ips) > 0 {
|
||||
// yay, node name resolved correctly, pick the first
|
||||
return ips[0].String()
|
||||
}
|
||||
}
|
||||
// fallback to node name in test context
|
||||
return framework.TestContext.NodeName
|
||||
}
|
||||
|
Reference in New Issue
Block a user