code: func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  	filters := r.URL.Query()["collect[]"]
  	log.Debugln("collect query:", filters)
  
  	if len(filters) == 0 {
  		// No filters, use the prepared unfiltered handler.
  		h.unfilteredHandler.ServeHTTP(w, r)
  		return
  	}
  	// To serve filtered metrics, we create a filtering handler on the fly.
  	filteredHandler, err := h.innerHandler(filters...)
  	if err != nil {
  		log.Warnln("Couldn't create filtered metrics handler:", err)
  		w.WriteHeader(http.StatusBadRequest)
  		w.Write([]byte(fmt.Sprintf("Couldn't create filtered metrics handler: %s", err)))
  		return
  	}
  	filteredHandler.ServeHTTP(w, r)
  }
docs: // ServeHTTP implements http.Handler.