code: func InstrumentHandler(handlerName string, handler http.Handler) http.HandlerFunc {
  	return InstrumentHandlerFunc(handlerName, handler.ServeHTTP)
  }
docs: // InstrumentHandler wraps the given HTTP handler for instrumentation. It
  // registers four metric collectors (if not already done) and reports HTTP
  // metrics to the (newly or already) registered collectors: http_requests_total
  // (CounterVec), http_request_duration_microseconds (Summary),
  // http_request_size_bytes (Summary), http_response_size_bytes (Summary). Each
  // has a constant label named "handler" with the provided handlerName as
  // value. http_requests_total is a metric vector partitioned by HTTP method
  // (label name "method") and HTTP status code (label name "code").
  //
  // Deprecated: InstrumentHandler has several issues. Use the tooling provided in
  // package promhttp instead. The issues are the following: (1) It uses Summaries
  // rather than Histograms. Summaries are not useful if aggregation across
  // multiple instances is required. (2) It uses microseconds as unit, which is
  // deprecated and should be replaced by seconds. (3) The size of the request is
  // calculated in a separate goroutine. Since this calculator requires access to
  // the request header, it creates a race with any writes to the header performed
  // during request handling.  httputil.ReverseProxy is a prominent example for a
  // handler performing such writes. (4) It has additional issues with HTTP/2, cf.
  // https://github.com/prometheus/client_golang/issues/272.