mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
Fix the broken calls to the monitor() by having it take arguments as pointers.
This is needed for the changes to various labels from later in the function to be picked up.
This commit is contained in:
parent
dca88634ae
commit
60f0e9d673
@ -68,9 +68,9 @@ func init() {
|
||||
|
||||
// monitor is a helper function for each HTTP request handler to use for
|
||||
// instrumenting basic request counter and latency metrics.
|
||||
func monitor(handler, verb, resource string, httpCode int, reqStart time.Time) {
|
||||
requestCounter.WithLabelValues(handler, verb, resource, strconv.Itoa(httpCode)).Inc()
|
||||
requestLatencies.WithLabelValues(handler, verb).Observe(float64((time.Since(reqStart)) / time.Microsecond))
|
||||
func monitor(handler string, verb, resource *string, httpCode *int, reqStart time.Time) {
|
||||
requestCounter.WithLabelValues(handler, *verb, *resource, strconv.Itoa(*httpCode)).Inc()
|
||||
requestLatencies.WithLabelValues(handler, *verb).Observe(float64((time.Since(reqStart)) / time.Microsecond))
|
||||
}
|
||||
|
||||
// monitorFilter creates a filter that reports the metrics for a given resource and action.
|
||||
@ -78,7 +78,8 @@ func monitorFilter(action, resource string) restful.FilterFunction {
|
||||
return func(req *restful.Request, res *restful.Response, chain *restful.FilterChain) {
|
||||
reqStart := time.Now()
|
||||
chain.ProcessFilter(req, res)
|
||||
monitor("rest", action, resource, res.StatusCode(), reqStart)
|
||||
httpCode := res.StatusCode()
|
||||
monitor("rest", &action, &resource, &httpCode, reqStart)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ func (r *ProxyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||
var apiResource string
|
||||
var httpCode int
|
||||
reqStart := time.Now()
|
||||
defer monitor("proxy", verb, apiResource, httpCode, reqStart)
|
||||
defer monitor("proxy", &verb, &apiResource, &httpCode, reqStart)
|
||||
|
||||
requestInfo, err := r.apiRequestInfoResolver.GetAPIRequestInfo(req)
|
||||
if err != nil {
|
||||
|
@ -38,7 +38,7 @@ func (r *RedirectHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||
var apiResource string
|
||||
var httpCode int
|
||||
reqStart := time.Now()
|
||||
defer monitor("redirect", verb, apiResource, httpCode, reqStart)
|
||||
defer monitor("redirect", &verb, &apiResource, &httpCode, reqStart)
|
||||
|
||||
requestInfo, err := r.apiRequestInfoResolver.GetAPIRequestInfo(req)
|
||||
if err != nil {
|
||||
|
@ -73,9 +73,11 @@ type ServerStatus struct {
|
||||
}
|
||||
|
||||
func (v *validator) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
verb := "get"
|
||||
apiResource := ""
|
||||
var httpCode int
|
||||
reqStart := time.Now()
|
||||
defer monitor("validate", "get", "", httpCode, reqStart)
|
||||
defer monitor("validate", &verb, &apiResource, &httpCode, reqStart)
|
||||
|
||||
reply := []ServerStatus{}
|
||||
for name, server := range v.servers() {
|
||||
|
@ -87,7 +87,7 @@ func (h *WatchHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||
var apiResource string
|
||||
var httpCode int
|
||||
reqStart := time.Now()
|
||||
defer monitor("watch", verb, apiResource, httpCode, reqStart)
|
||||
defer monitor("watch", &verb, &apiResource, &httpCode, reqStart)
|
||||
|
||||
if req.Method != "GET" {
|
||||
notFound(w, req)
|
||||
|
Loading…
Reference in New Issue
Block a user