mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Split request_count metric by contentType
This commit is contained in:
		@@ -35,9 +35,9 @@ var (
 | 
				
			|||||||
	requestCounter = prometheus.NewCounterVec(
 | 
						requestCounter = prometheus.NewCounterVec(
 | 
				
			||||||
		prometheus.CounterOpts{
 | 
							prometheus.CounterOpts{
 | 
				
			||||||
			Name: "apiserver_request_count",
 | 
								Name: "apiserver_request_count",
 | 
				
			||||||
			Help: "Counter of apiserver requests broken out for each verb, API resource, client, and HTTP response code.",
 | 
								Help: "Counter of apiserver requests broken out for each verb, API resource, client, and HTTP response contentType and code.",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		[]string{"verb", "resource", "client", "code"},
 | 
							[]string{"verb", "resource", "client", "contentType", "code"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
	requestLatencies = prometheus.NewHistogramVec(
 | 
						requestLatencies = prometheus.NewHistogramVec(
 | 
				
			||||||
		prometheus.HistogramOpts{
 | 
							prometheus.HistogramOpts{
 | 
				
			||||||
@@ -66,9 +66,9 @@ func Register() {
 | 
				
			|||||||
	prometheus.MustRegister(requestLatenciesSummary)
 | 
						prometheus.MustRegister(requestLatenciesSummary)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Monitor(verb, resource *string, client string, httpCode int, reqStart time.Time) {
 | 
					func Monitor(verb, resource *string, client, contentType string, httpCode int, reqStart time.Time) {
 | 
				
			||||||
	elapsed := float64((time.Since(reqStart)) / time.Microsecond)
 | 
						elapsed := float64((time.Since(reqStart)) / time.Microsecond)
 | 
				
			||||||
	requestCounter.WithLabelValues(*verb, *resource, client, codeToString(httpCode)).Inc()
 | 
						requestCounter.WithLabelValues(*verb, *resource, client, contentType, codeToString(httpCode)).Inc()
 | 
				
			||||||
	requestLatencies.WithLabelValues(*verb, *resource).Observe(elapsed)
 | 
						requestLatencies.WithLabelValues(*verb, *resource).Observe(elapsed)
 | 
				
			||||||
	requestLatenciesSummary.WithLabelValues(*verb, *resource).Observe(elapsed)
 | 
						requestLatenciesSummary.WithLabelValues(*verb, *resource).Observe(elapsed)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -99,7 +99,7 @@ func InstrumentRouteFunc(verb, resource string, routeFunc restful.RouteFunction)
 | 
				
			|||||||
		response.ResponseWriter = rw
 | 
							response.ResponseWriter = rw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		routeFunc(request, response)
 | 
							routeFunc(request, response)
 | 
				
			||||||
		Monitor(&verb, &resource, utilnet.GetHTTPClient(request.Request), delegate.status, now)
 | 
							Monitor(&verb, &resource, utilnet.GetHTTPClient(request.Request), rw.Header().Get("Content-Type"), delegate.status, now)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,7 +57,7 @@ func (r *ProxyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
 | 
				
			|||||||
	var apiResource string
 | 
						var apiResource string
 | 
				
			||||||
	var httpCode int
 | 
						var httpCode int
 | 
				
			||||||
	reqStart := time.Now()
 | 
						reqStart := time.Now()
 | 
				
			||||||
	defer metrics.Monitor(&verb, &apiResource, net.GetHTTPClient(req), httpCode, reqStart)
 | 
						defer metrics.Monitor(&verb, &apiResource, net.GetHTTPClient(req), w.Header().Get("Content-Type"), httpCode, reqStart)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	requestInfo, err := r.requestInfoResolver.GetRequestInfo(req)
 | 
						requestInfo, err := r.requestInfoResolver.GetRequestInfo(req)
 | 
				
			||||||
	if err != nil || !requestInfo.IsResourceRequest {
 | 
						if err != nil || !requestInfo.IsResourceRequest {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var KnownApiServerMetrics = map[string][]string{
 | 
					var KnownApiServerMetrics = map[string][]string{
 | 
				
			||||||
	"apiserver_request_count":                        {"verb", "resource", "client", "code"},
 | 
						"apiserver_request_count":                        {"verb", "resource", "client", "contentType", "code"},
 | 
				
			||||||
	"apiserver_request_latencies_bucket":             {"verb", "resource", "le"},
 | 
						"apiserver_request_latencies_bucket":             {"verb", "resource", "le"},
 | 
				
			||||||
	"apiserver_request_latencies_count":              {"verb", "resource"},
 | 
						"apiserver_request_latencies_count":              {"verb", "resource"},
 | 
				
			||||||
	"apiserver_request_latencies_sum":                {"verb", "resource"},
 | 
						"apiserver_request_latencies_sum":                {"verb", "resource"},
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user