diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go
index 5a8afbf4231f40160ecfc62806575988dec8ccb0..28a37d42aa7336531e2a79fa80f86b403752b5e5 100644
--- a/p2p/net/swarm/swarm.go
+++ b/p2p/net/swarm/swarm.go
@@ -289,11 +289,11 @@ func (n *ps2netNotifee) ClosedStream(s *ps.Stream) {
 type metricsNotifiee Swarm
 
 func (nn *metricsNotifiee) Connected(n inet.Network, v inet.Conn) {
-	peersTotalGauge(n.LocalPeer()).Inc()
+	peersTotalGauge(n.LocalPeer()).Set(float64(len(n.Conns())))
 }
 
 func (nn *metricsNotifiee) Disconnected(n inet.Network, v inet.Conn) {
-	peersTotalGauge(n.LocalPeer()).Dec()
+	peersTotalGauge(n.LocalPeer()).Set(float64(len(n.Conns())))
 }
 
 func (nn *metricsNotifiee) OpenedStream(n inet.Network, v inet.Stream) {}
diff --git a/p2p/net/swarm/swarm_net.go b/p2p/net/swarm/swarm_net.go
index 0628ebabf6a9605f7d155d94fd5db33a8d48397b..7b6e72906c9430efcff2acf8715dd1b21e859fd8 100644
--- a/p2p/net/swarm/swarm_net.go
+++ b/p2p/net/swarm/swarm_net.go
@@ -58,12 +58,12 @@ func (n *Network) LocalPeer() peer.ID {
 	return n.Swarm().LocalPeer()
 }
 
-// Peers returns the connected peers
+// Peers returns the known peer IDs from the Peerstore
 func (n *Network) Peers() []peer.ID {
 	return n.Swarm().Peers()
 }
 
-// Peers returns the connected peers
+// Peers returns the Peerstore, which tracks known peers
 func (n *Network) Peerstore() peer.Peerstore {
 	return n.Swarm().peers
 }