func (h HTTPHandler) ServeHTTP(res http.ResponseWriter, req *http.Request) {
	var status string
	defer func() {
		getCallCounter.WithLabelValues(status).Inc()
	}()
	overviewTemplate = template.Must(template.ParseFiles("./static/podtato-new.html"))
	err := overviewTemplate.Execute(res, podtatoConfiguration)
	if err != nil {
		log.Print(err.Error())
	}
	if podtatoConfiguration.ServiceVersion == "0.1.2" {
		time.Sleep(2 * time.Second)
	}
	if err != nil {
		status = "error"
	}
	status = "success"
}
implement `ServeHTTP` method on `HttpHandler` struct
package main
import (
	"flag"
	"fmt"
	"os"
	"github.com/cncf/podtato-head/podtato-server/pkg"
	"strconv"
	"time"
	"github.com/gorilla/mux"
	"github.com/prometheus/client_golang/prometheus"
	"github.com/prometheus/client_golang/prometheus/promhttp"
	"html/template"
	"log"
	"net/http"
)
var podtatoConfiguration *pkg.PodtatoConfig
var overviewTemplate *template.Template
var getCallCounter = prometheus.NewCounterVec(
	prometheus.CounterOpts{
		Name: "http_requests_total",  
		Help: "Number of get requests.",
	},
	[]string{"status"},  
)
var buckets = []float64{.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10}
var responseTimeHistogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
	Name:    "http_server_request_duration_seconds",
	Help:    "Histogram of response time for handler in seconds",
	Buckets: buckets,
}, []string{"route", "method", "status_code"})
type HTTPHandler struct{}
type statusRecorder struct {
	http.ResponseWriter
	statusCode int
}
func (rec *statusRecorder) WriteHeader(statusCode int) {
	rec.statusCode = statusCode
	rec.ResponseWriter.WriteHeader(statusCode)
}
func getRoutePattern(r *http.Request) string {
	reqContext := mux.CurrentRoute(r)
	if pattern, _ := reqContext.GetPathTemplate(); pattern != "" {
		return pattern
	}
	fmt.Println(reqContext.GetPathRegexp())
	return "undefined"
}