@@ -18,8 +18,6 @@ package metrics
1818
1919import  (
2020	"context" 
21- 	"net/url" 
22- 	"time" 
2321
2422	"github.com/prometheus/client_golang/prometheus" 
2523	clientmetrics "k8s.io/client-go/tools/metrics" 
@@ -29,70 +27,9 @@ import (
2927// that client-go registers metrics.  We copy the names and formats 
3028// from Kubernetes so that we match the core controllers. 
3129
32- // Metrics subsystem and all of the keys used by the rest client. 
33- const  (
34- 	RestClientSubsystem  =  "rest_client" 
35- 	LatencyKey           =  "request_latency_seconds" 
36- 	ResultKey            =  "requests_total" 
37- )
38- 
3930var  (
4031	// client metrics. 
4132
42- 	// RequestLatency reports the request latency in seconds per verb/URL. 
43- 	// Deprecated: This metric is deprecated for removal in a future release: using the URL as a 
44- 	// dimension results in cardinality explosion for some consumers. It was deprecated upstream 
45- 	// in k8s v1.14 and hidden in v1.17 via https://github.com/kubernetes/kubernetes/pull/83836. 
46- 	// It is not registered by default. To register: 
47- 	//	import ( 
48- 	//		clientmetrics "k8s.io/client-go/tools/metrics" 
49- 	//		clmetrics "sigs.k8s.io/controller-runtime/metrics" 
50- 	//	) 
51- 	// 
52- 	//	func init() { 
53- 	//		clmetrics.Registry.MustRegister(clmetrics.RequestLatency) 
54- 	//		clientmetrics.Register(clientmetrics.RegisterOpts{ 
55- 	//			RequestLatency: clmetrics.LatencyAdapter 
56- 	//		}) 
57- 	//	} 
58- 	RequestLatency  =  prometheus .NewHistogramVec (prometheus.HistogramOpts {
59- 		Subsystem : RestClientSubsystem ,
60- 		Name :      LatencyKey ,
61- 		Help :      "Request latency in seconds. Broken down by verb and URL." ,
62- 		Buckets :   prometheus .ExponentialBuckets (0.001 , 2 , 10 ),
63- 	}, []string {"verb" , "url" })
64- 
65- 	// requestLatency is a Prometheus Histogram metric type partitioned by 
66- 	// "verb", and "host" labels. It is used for the rest client latency metrics. 
67- 	requestLatency  =  prometheus .NewHistogramVec (
68- 		prometheus.HistogramOpts {
69- 			Name :    "rest_client_request_duration_seconds" ,
70- 			Help :    "Request latency in seconds. Broken down by verb, and host." ,
71- 			Buckets : []float64 {0.005 , 0.025 , 0.1 , 0.25 , 0.5 , 1.0 , 2.0 , 4.0 , 8.0 , 15.0 , 30.0 , 60.0 },
72- 		},
73- 		[]string {"verb" , "host" },
74- 	)
75- 
76- 	requestSize  =  prometheus .NewHistogramVec (
77- 		prometheus.HistogramOpts {
78- 			Name : "rest_client_request_size_bytes" ,
79- 			Help : "Request size in bytes. Broken down by verb and host." ,
80- 			// 64 bytes to 16MB 
81- 			Buckets : []float64 {64 , 256 , 512 , 1024 , 4096 , 16384 , 65536 , 262144 , 1048576 , 4194304 , 16777216 },
82- 		},
83- 		[]string {"verb" , "host" },
84- 	)
85- 
86- 	responseSize  =  prometheus .NewHistogramVec (
87- 		prometheus.HistogramOpts {
88- 			Name : "rest_client_response_size_bytes" ,
89- 			Help : "Response size in bytes. Broken down by verb and host." ,
90- 			// 64 bytes to 16MB 
91- 			Buckets : []float64 {64 , 256 , 512 , 1024 , 4096 , 16384 , 65536 , 262144 , 1048576 , 4194304 , 16777216 },
92- 		},
93- 		[]string {"verb" , "host" },
94- 	)
95- 
9633	requestResult  =  prometheus .NewCounterVec (
9734		prometheus.CounterOpts {
9835			Name : "rest_client_requests_total" ,
@@ -109,17 +46,11 @@ func init() {
10946// registerClientMetrics sets up the client latency metrics from client-go. 
11047func  registerClientMetrics () {
11148	// register the metrics with our registry 
112- 	Registry .MustRegister (requestLatency )
113- 	Registry .MustRegister (requestSize )
114- 	Registry .MustRegister (responseSize )
11549	Registry .MustRegister (requestResult )
11650
11751	// register the metrics with client-go 
11852	clientmetrics .Register (clientmetrics.RegisterOpts {
119- 		RequestLatency : & LatencyAdapter {metric : requestLatency },
120- 		RequestSize :    & sizeAdapter {metric : requestSize },
121- 		ResponseSize :   & sizeAdapter {metric : responseSize },
122- 		RequestResult :  & resultAdapter {metric : requestResult },
53+ 		RequestResult : & resultAdapter {metric : requestResult },
12354	})
12455}
12556
@@ -131,24 +62,6 @@ func registerClientMetrics() {
13162// copied (more-or-less directly) from k8s.io/kubernetes setup code 
13263// (which isn't anywhere in an easily-importable place). 
13364
134- // LatencyAdapter implements LatencyMetric. 
135- type  LatencyAdapter  struct  {
136- 	metric  * prometheus.HistogramVec 
137- }
138- 
139- // Observe increments the request latency metric for the given verb/URL. 
140- func  (l  * LatencyAdapter ) Observe (_  context.Context , verb  string , u  url.URL , latency  time.Duration ) {
141- 	l .metric .WithLabelValues (verb , u .String ()).Observe (latency .Seconds ())
142- }
143- 
144- type  sizeAdapter  struct  {
145- 	metric  * prometheus.HistogramVec 
146- }
147- 
148- func  (s  * sizeAdapter ) Observe (ctx  context.Context , verb  string , host  string , size  float64 ) {
149- 	s .metric .WithLabelValues (verb , host ).Observe (size )
150- }
151- 
15265type  resultAdapter  struct  {
15366	metric  * prometheus.CounterVec 
15467}
0 commit comments