mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-23 19:37:46 +08:00
fix(corehttp): adjust peer counting metrics (#8577)
(cherry picked from commit 9d197ca732)
This commit is contained in:
parent
726b9e216c
commit
042efd3982
@ -160,9 +160,18 @@ func (c IpfsNodeCollector) PeersTotalValues() map[string]float64 {
|
||||
if c.Node.PeerHost == nil {
|
||||
return vals
|
||||
}
|
||||
for _, conn := range c.Node.PeerHost.Network().Conns() {
|
||||
for _, peerID := range c.Node.PeerHost.Network().Peers() {
|
||||
// Each peer may have more than one connection (see for an explanation
|
||||
// https://github.com/libp2p/go-libp2p-swarm/commit/0538806), so we grab
|
||||
// only one, the first (an arbitrary and non-deterministic choice), which
|
||||
// according to ConnsToPeer is the oldest connection in the list
|
||||
// (https://github.com/libp2p/go-libp2p-swarm/blob/v0.2.6/swarm.go#L362-L364).
|
||||
conns := c.Node.PeerHost.Network().ConnsToPeer(peerID)
|
||||
if len(conns) == 0 {
|
||||
continue
|
||||
}
|
||||
tr := ""
|
||||
for _, proto := range conn.RemoteMultiaddr().Protocols() {
|
||||
for _, proto := range conns[0].RemoteMultiaddr().Protocols() {
|
||||
tr = tr + "/" + proto.Name
|
||||
}
|
||||
vals[tr] = vals[tr] + 1
|
||||
|
||||
@ -44,11 +44,13 @@ func TestPeersTotal(t *testing.T) {
|
||||
|
||||
node := &core.IpfsNode{PeerHost: hosts[0]}
|
||||
collector := IpfsNodeCollector{Node: node}
|
||||
actual := collector.PeersTotalValues()
|
||||
if len(actual) != 1 {
|
||||
t.Fatalf("expected 1 peers transport, got %d, transport map %v", len(actual), actual)
|
||||
peersTransport := collector.PeersTotalValues()
|
||||
if len(peersTransport) > 2 {
|
||||
t.Fatalf("expected at most 2 peers transport (tcp and upd/quic), got %d, transport map %v",
|
||||
len(peersTransport), peersTransport)
|
||||
}
|
||||
if actual["/ip4/tcp"] != float64(3) {
|
||||
t.Fatalf("expected 3 peers, got %f", actual["/ip4/tcp"])
|
||||
totalPeers := peersTransport["/ip4/tcp"] + peersTransport["/ip4/udp/quic"]
|
||||
if totalPeers != 3 {
|
||||
t.Fatalf("expected 3 peers in either tcp or upd/quic transport, got %f", totalPeers)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user