diff --git a/node/node.go b/node/node.go index d225c047e..5f78a48fd 100644 --- a/node/node.go +++ b/node/node.go @@ -5,6 +5,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "net/http" "sync" "github.com/libp2p/go-libp2p/core/crypto" @@ -263,6 +264,7 @@ func (n *Node) OnStart() error { if err != nil { return fmt.Errorf("error while starting settlement layer client: %w", err) } + n.startPrometheusServer() n.baseLayersHealthStatus = BaseLayersHealthStatus{ settlementHealthy: true, daHealthy: true, @@ -402,3 +404,12 @@ func (n *Node) healthStatusHandler(err error) { } } } + +func (n *Node) startPrometheusServer() { + go func() { + if err := http.ListenAndServe(":2112", nil); err != nil { + // Error starting or closing listener: + n.Logger.Error("Prometheus HTTP server ListenAndServe", "err", err) + } + }() +} diff --git a/rpc/server.go b/rpc/server.go index 4c9472800..c825001a1 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -3,7 +3,6 @@ package rpc import ( "context" "errors" - "github.com/prometheus/client_golang/prometheus/promhttp" "net" "net/http" "strings" @@ -85,13 +84,6 @@ func (s *Server) PubSubServer() *pubsub.Server { // OnStart is called when Server is started (see service.BaseService for details). func (s *Server) OnStart() error { go s.eventListener() - go func() { - http.Handle("/metrics", promhttp.Handler()) - err := http.ListenAndServe(":2112", nil) - if err != nil { - s.Logger.Error("error while running metrics server", "error", err) - } - }() return s.startRPC() }