package main import ( "fmt" "net/http" "log" ) var( metrics_num_urls int ) func main() { log.Println("Starting HTTP listener") http.HandleFunc("/", httpHandler) http.HandleFunc("/metrics", metricsHandler) listenErr := http.ListenAndServe(":80", nil) // set listen port if listenErr != nil { log.Fatalln(listenErr.Error()) } } // Handling incoming HTTP connections func httpHandler(w http.ResponseWriter, r *http.Request) { metrics_num_urls++ log.Printf("(%s) %s %s", r.Method, r.RemoteAddr, r.URL.Path) } // Handle HTTP /metrics requests func metricsHandler(w http.ResponseWriter, req *http.Request) { fmt.Fprintf(w, "num_urls %d\n", metrics_num_urls) }