rcmgr: register prometheus metrics with the libp2p registerer (#2370)

* rcmgr: register prometheus metrics with the libp2p registerer

* update dashboard readme
This commit is contained in:
Sukun
2023-06-21 16:14:27 +05:30
committed by GitHub
parent 139af10806
commit dfaeb7ed48
3 changed files with 10 additions and 5 deletions

View File

@@ -26,6 +26,7 @@ import (
blankhost "github.com/libp2p/go-libp2p/p2p/host/blank"
"github.com/libp2p/go-libp2p/p2p/host/eventbus"
"github.com/libp2p/go-libp2p/p2p/host/peerstore/pstoremem"
rcmgrObs "github.com/libp2p/go-libp2p/p2p/host/resource-manager/obs"
routed "github.com/libp2p/go-libp2p/p2p/host/routed"
"github.com/libp2p/go-libp2p/p2p/net/swarm"
tptu "github.com/libp2p/go-libp2p/p2p/net/upgrader"
@@ -299,6 +300,10 @@ func (cfg *Config) NewNode() (host.Host, error) {
return nil, err
}
if !cfg.DisableMetrics {
rcmgrObs.MustRegisterWith(cfg.PrometheusRegisterer)
}
h, err := bhost.NewHost(swrm, &bhost.HostOpts{
EventBus: eventBus,
ConnManager: cfg.ConnManager,

View File

@@ -5,8 +5,10 @@ import follow the Grafana docs [here](https://grafana.com/docs/grafana/latest/da
## Setup
To make sure you're emitting the correct metrics you'll have to register the
metrics with a Prometheus Registerer. For example:
To make sure you're emitting the metrics you'll have to create the Resource
Manager with a StatsTraceReporter. By default metrics will be sent to
prometheus.DefaultRegisterer. To use a different Registerer use the libp2p
option libp2p.PrometheusRegisterer. For example:
``` go
import (
@@ -18,8 +20,6 @@ import (
)
func SetupResourceManager() (network.ResourceManager, error) {
rcmgrObs.MustRegisterWith(prometheus.DefaultRegisterer)
str, err := rcmgrObs.NewStatsTraceReporter()
if err != nil {
return nil, err

View File

@@ -142,7 +142,7 @@ var (
)
func MustRegisterWith(reg prometheus.Registerer) {
reg.MustRegister(
metricshelper.RegisterCollectors(reg,
conns,
peerConns,
previousPeerConns,