mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #25733 from wojtek-t/metric_by_content_type
Split request_count metric by contentType
This commit is contained in:
commit
98c91b9787
@ -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 {
|
||||||
|
@ -50,8 +50,9 @@ type clientPoolImpl struct {
|
|||||||
|
|
||||||
// NewClientPool returns a ClientPool from the specified config
|
// NewClientPool returns a ClientPool from the specified config
|
||||||
func NewClientPool(config *restclient.Config, apiPathResolverFunc APIPathResolverFunc) ClientPool {
|
func NewClientPool(config *restclient.Config, apiPathResolverFunc APIPathResolverFunc) ClientPool {
|
||||||
|
confCopy := *config
|
||||||
return &clientPoolImpl{
|
return &clientPoolImpl{
|
||||||
config: config,
|
config: &confCopy,
|
||||||
clients: map[unversioned.GroupVersion]*Client{},
|
clients: map[unversioned.GroupVersion]*Client{},
|
||||||
apiPathResolverFunc: apiPathResolverFunc,
|
apiPathResolverFunc: apiPathResolverFunc,
|
||||||
}
|
}
|
||||||
|
@ -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"},
|
||||||
|
Loading…
Reference in New Issue
Block a user