~bigbes/core-go

79dad627f9fe97a3c57609de87a9641a7aae9693 — Drew DeVault 1 year, 4 months ago ee0aeb7
server: add pprof endpoint

This adds a pprof endpoint to all SourceHut APIs. It picks an
OS-assigned port on localhost to run it on and prints this port to
stdout. This ensures a unique port is selected even if several APIs are
running on a single host.
1 files changed, 8 insertions(+), 0 deletions(-)

M server/server.go
M server/server.go => server/server.go +8 -0
@@ 9,6 9,7 @@ import (
	"log"
	"net"
	"net/http"
	_ "net/http/pprof"
	"os"
	"os/signal"
	"strconv"


@@ 300,6 301,13 @@ func (server *Server) Run() {
	log.Printf("Prometheus listening on :%d", plisten.Addr().(*net.TCPAddr).Port)
	go pserver.Serve(plisten)

	pplisten, err := net.Listen("tcp", "localhost:0")
	if err != nil {
		panic(err)
	}
	log.Printf("pprof listening on :%d", pplisten.Addr().(*net.TCPAddr).Port)
	go http.Serve(pplisten, nil)

	sig := make(chan os.Signal, 1)
	signal.Notify(sig, os.Interrupt)
	<-sig