From 54387c09315a4504ec9c2e4ca3bd7d2ae0b2808d Mon Sep 17 00:00:00 2001 From: darshankabariya Date: Mon, 9 Jun 2025 14:39:58 +0530 Subject: [PATCH] chore: add waku_connected_peers_per_shard --- waku/discovery/waku_discv5.nim | 2 +- waku/node/peer_manager/peer_manager.nim | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/waku/discovery/waku_discv5.nim b/waku/discovery/waku_discv5.nim index 32e862ca8..e733c5113 100644 --- a/waku/discovery/waku_discv5.nim +++ b/waku/discovery/waku_discv5.nim @@ -15,7 +15,7 @@ import ../node/peer_manager/peer_manager, ../waku_core, ../waku_enr export protocol, waku_enr declarePublicGauge waku_discv5_discovered, - "number of nodes discovered", labels = ["shard"] + "number of nodes discovered by each shard", labels = ["shard"] declarePublicGauge waku_discv5_errors, "number of waku discv5 errors", ["type"] logScope: diff --git a/waku/node/peer_manager/peer_manager.nim b/waku/node/peer_manager/peer_manager.nim index 707738e5f..87ec131e4 100644 --- a/waku/node/peer_manager/peer_manager.nim +++ b/waku/node/peer_manager/peer_manager.nim @@ -34,6 +34,9 @@ declarePublicGauge waku_peers_errors, "Number of peer manager errors", ["type"] declarePublicGauge waku_connected_peers, "Number of physical connections per direction and protocol", labels = ["direction", "protocol"] +declarePublicGauge waku_connected_peers_per_shard, + "Number of physical connections per shard", + labels = ["shard"] declarePublicGauge waku_streams_peers, "Number of streams per direction and protocol", labels = ["direction", "protocol"] declarePublicGauge waku_peer_store_size, "Number of peers managed by the peer store" @@ -809,6 +812,15 @@ proc logAndMetrics(pm: PeerManager) {.async.} = protoStreamsOut.float64, labelValues = [$Direction.Out, proto] ) + for shard in 0..63: # Assuming shards are 0-63 as per Waku spec + waku_connected_peers_per_shard.set(0.0, labelValues = [$shard]) + + for shard in pm.wakuMetadata.shards.items: + let connectedPeers = peerStore.getPeersByShard(uint16(pm.wakuMetadata.clusterId), uint16(shard)) + waku_connected_peers_per_shard.set( + connectedPeers.len.float64, labelValues = [$shard] + ) + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# # Pruning and Maintenance (Stale Peers Management) # #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#