code: func MonitorRequest(req *http.Request, verb, group, version, resource, subresource, scope, component, contentType string, httpCode, respSize int, elapsed time.Duration) {
  	reportedVerb := cleanVerb(verb, req)
  	dryRun := cleanDryRun(req.URL)
  	client := cleanUserAgent(utilnet.GetHTTPClient(req))
  	elapsedMicroseconds := float64(elapsed / time.Microsecond)
  	elapsedSeconds := elapsed.Seconds()
  	requestCounter.WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component, client, contentType, codeToString(httpCode)).Inc()
  	deprecatedRequestCounter.WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component, client, contentType, codeToString(httpCode)).Inc()
  	requestLatencies.WithLabelValues(reportedVerb, dryRun, group, version, resource, subresource, scope, component).Observe(elapsedSeconds)
  	deprecatedRequestLatencies.WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component).Observe(elapsedMicroseconds)
  	deprecatedRequestLatenciesSummary.WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component).Observe(elapsedMicroseconds)
  	// We are only interested in response sizes of read requests.
  	if verb == "GET" || verb == "LIST" {
  		responseSizes.WithLabelValues(reportedVerb, group, version, resource, subresource, scope, component).Observe(float64(respSize))
  	}
  }
docs: // MonitorRequest handles standard transformations for client and the reported verb and then invokes Monitor to record
  // a request. verb must be uppercase to be backwards compatible with existing monitoring tooling.