add metrics

This commit is contained in:
tycho garen
2022-06-14 06:59:20 -04:00
parent 420ae3790e
commit 9a0d4407d7
4 changed files with 17 additions and 2 deletions
+3
View File
@@ -28,6 +28,9 @@ var (
type Metrics struct {
// Number of peers.
Peers metrics.Gauge
PeersStored metrics.Gauge
PeersInactivated metrics.Gauge
// Number of bytes per channel received from a given peer.
PeerReceiveBytesTotal metrics.Counter `metrics_labels:"peer_id, chID, message_type"`
// Number of bytes per channel sent to a given peer.
+11 -1
View File
@@ -145,6 +145,9 @@ type PeerManagerOptions struct {
// persistentPeers provides fast PersistentPeers lookups. It is built
// by optimize().
persistentPeers map[types.NodeID]bool
// Peer Metrics
Metrics *Metrics
}
// Validate validates the options.
@@ -377,6 +380,7 @@ func (m *PeerManager) prunePeers() error {
if err := m.store.Delete(peerID); err != nil {
return err
}
m.options.Metrics.PeersStored.Add(-1)
}
}
return nil
@@ -414,6 +418,8 @@ func (m *PeerManager) Add(address NodeAddress) (bool, error) {
if err := m.store.Set(peer); err != nil {
return false, err
}
m.options.Metrics.PeersStored.Add(1)
if err := m.prunePeers(); err != nil {
return true, err
}
@@ -590,7 +596,11 @@ func (m *PeerManager) Dialed(address NodeAddress) error {
return fmt.Errorf("peer %q was removed while dialing", address.NodeID)
}
now := time.Now().UTC()
if peer.Inactive {
m.options.Metrics.PeersInactivated.Add(-1)
}
peer.Inactive = false
peer.LastConnected = now
if addressInfo, ok := peer.AddressInfo[address]; ok {
addressInfo.DialFailures = 0
@@ -811,7 +821,7 @@ func (m *PeerManager) Inactivate(peerID types.NodeID) error {
}
peer.Inactive = true
m.options.Metrics.PeersInactivated.Add(1)
return m.store.Set(*peer)
}
+1 -1
View File
@@ -203,7 +203,7 @@ func makeNode(
}
}
peerManager, peerCloser, err := createPeerManager(cfg, dbProvider, nodeKey.ID)
peerManager, peerCloser, err := createPeerManager(cfg, dbProvider, nodeKey.ID, nodeMetrics.p2p)
closers = append(closers, peerCloser)
if err != nil {
return nil, combineCloseError(
+2
View File
@@ -202,6 +202,7 @@ func createPeerManager(
cfg *config.Config,
dbProvider config.DBProvider,
nodeID types.NodeID,
metrics *p2p.Metrics,
) (*p2p.PeerManager, closer, error) {
selfAddr, err := p2p.ParseNodeAddress(nodeID.AddressString(cfg.P2P.ExternalAddress))
@@ -235,6 +236,7 @@ func createPeerManager(
MaxRetryTimePersistent: 5 * time.Minute,
RetryTimeJitter: 5 * time.Second,
PrivatePeers: privatePeerIDs,
Metrics: metrics,
}
peers := []p2p.NodeAddress{}