diff --git a/disperser/apiserver/pprof.go b/disperser/apiserver/pprof.go new file mode 100644 index 0000000000..72f17f6453 --- /dev/null +++ b/disperser/apiserver/pprof.go @@ -0,0 +1,36 @@ +package apiserver + +import ( + "fmt" + "net/http" + + "github.com/Layr-Labs/eigenda/disperser" + "github.com/Layr-Labs/eigensdk-go/logging" +) + +type PprofConfig struct { + HTTPPort string + EnablePprof bool +} + +type PprofProfiler struct { + logger logging.Logger + httpPort string +} + +func NewPprofProfiler(httpPort string, logger logging.Logger) *PprofProfiler { + return &PprofProfiler{ + logger: logger.With("component", "PprofProfiler"), + httpPort: httpPort, + } +} + +// Start the pprof server +func (p *PprofProfiler) Start(port string, logger logging.Logger) { + pprofAddr := fmt.Sprintf("%s:%s", disperser.Localhost, port) + mux := http.NewServeMux() + + if err := http.ListenAndServe(pprofAddr, mux); err != nil { + p.logger.Error("pprof server failed", "error", err) + } +}