code: func InstrumentRoundTripperCounter(counter *prometheus.CounterVec, next http.RoundTripper) RoundTripperFunc {
  	code, method := checkLabels(counter)
  
  	return RoundTripperFunc(func(r *http.Request) (*http.Response, error) {
  		resp, err := next.RoundTrip(r)
  		if err == nil {
  			counter.With(labels(code, method, r.Method, resp.StatusCode)).Inc()
  		}
  		return resp, err
  	})
  }
docs: // InstrumentRoundTripperCounter is a middleware that wraps the provided
  // http.RoundTripper to observe the request result with the provided CounterVec.
  // The CounterVec must have zero, one, or two non-const non-curried labels. For
  // those, the only allowed label names are "code" and "method". The function
  // panics otherwise. Partitioning of the CounterVec happens by HTTP status code
  // and/or HTTP method if the respective instance label names are present in the
  // CounterVec. For unpartitioned counting, use a CounterVec with zero labels.
  //
  // If the wrapped RoundTripper panics or returns a non-nil error, the Counter
  // is not incremented.
  //
  // See the example for ExampleInstrumentRoundTripperDuration for example usage.