From 56cf8f1df302f6522088e1284262d49c10750a90 Mon Sep 17 00:00:00 2001 From: tycho garen Date: Tue, 14 Jun 2022 08:58:40 -0400 Subject: [PATCH] default metrics to noop --- internal/p2p/peermanager.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/internal/p2p/peermanager.go b/internal/p2p/peermanager.go index 6ddf5866f..f0e7e540d 100644 --- a/internal/p2p/peermanager.go +++ b/internal/p2p/peermanager.go @@ -284,6 +284,7 @@ func (o *PeerManagerOptions) optimize() { type PeerManager struct { selfID types.NodeID options PeerManagerOptions + metrics *Metrics rand *rand.Rand dialWaker *tmsync.Waker // wakes up DialNext() on relevant peer changes evictWaker *tmsync.Waker // wakes up EvictNext() on relevant peer changes @@ -318,13 +319,13 @@ func NewPeerManager(selfID types.NodeID, peerDB dbm.DB, options PeerManagerOptio } peerManager := &PeerManager{ - selfID: selfID, - options: options, - rand: rand.New(rand.NewSource(time.Now().UnixNano())), // nolint:gosec - dialWaker: tmsync.NewWaker(), - evictWaker: tmsync.NewWaker(), - closeCh: make(chan struct{}), - + selfID: selfID, + options: options, + rand: rand.New(rand.NewSource(time.Now().UnixNano())), // nolint:gosec + dialWaker: tmsync.NewWaker(), + evictWaker: tmsync.NewWaker(), + closeCh: make(chan struct{}), + metrics: NopMetrics(), store: store, dialing: map[types.NodeID]bool{}, upgrading: map[types.NodeID]types.NodeID{}, @@ -334,6 +335,11 @@ func NewPeerManager(selfID types.NodeID, peerDB dbm.DB, options PeerManagerOptio evicting: map[types.NodeID]bool{}, subscriptions: map[*PeerUpdates]*PeerUpdates{}, } + + if options.Metrics != nil { + peerManager.metrics = options.Metrics + } + if err = peerManager.configurePeers(); err != nil { return nil, err } @@ -403,7 +409,7 @@ func (m *PeerManager) prunePeers() error { if err := m.store.Delete(peerID); err != nil { return err } - m.options.Metrics.PeersStored.Add(-1) + m.metrics.PeersStored.Add(-1) } } return nil @@ -442,7 +448,7 @@ func (m *PeerManager) Add(address NodeAddress) (bool, error) { return false, err } - m.options.Metrics.PeersStored.Add(1) + m.metrics.PeersStored.Add(1) if err := m.prunePeers(); err != nil { return true, err } @@ -621,7 +627,7 @@ func (m *PeerManager) Dialed(address NodeAddress) error { } now := time.Now().UTC() if peer.Inactive { - m.options.Metrics.PeersInactivated.Add(-1) + m.metrics.PeersInactivated.Add(-1) } peer.Inactive = false @@ -845,7 +851,7 @@ func (m *PeerManager) Inactivate(peerID types.NodeID) error { } peer.Inactive = true - m.options.Metrics.PeersInactivated.Add(1) + m.metrics.PeersInactivated.Add(1) return m.store.Set(*peer) }