Skip to content

Commit 847b1ad

Browse files
committed
fix: address PR comments
1 parent 66a4ec3 commit 847b1ad

2 files changed

Lines changed: 45 additions & 15 deletions

File tree

pkg/bzz/transport_test.go

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,21 @@ func TestClassifyTransport(t *testing.T) {
283283
addr: mustMultiaddr("/ip6/::1/tcp/1635/tls/sni/0--1.k2k4r8pr3m3aug5nudg2y039qfj2gxw6wnlx0e0ghzxufcn38soyp9z4.libp2p.direct/ws/p2p/QmfSx1ujzboapD5h2CiqTJqUy46FeTDwXBszB3XUCfKEEj"),
284284
expected: bzz.TransportWSS,
285285
},
286+
{
287+
name: "WSS address with deprecated /wss component",
288+
addr: mustMultiaddr("/ip4/104.28.194.73/tcp/443/wss/p2p/QmfSx1ujzboapD5h2CiqTJqUy46FeTDwXBszB3XUCfKEEj"),
289+
expected: bzz.TransportWSS,
290+
},
291+
{
292+
name: "QUIC v1 address",
293+
addr: mustMultiaddr("/ip4/1.2.3.4/udp/1234/quic-v1"),
294+
expected: bzz.TransportQUICV1,
295+
},
296+
{
297+
name: "legacy QUIC address",
298+
addr: mustMultiaddr("/ip4/1.2.3.4/udp/1234/quic"),
299+
expected: bzz.TransportQUIC,
300+
},
286301
{
287302
name: "UDP address returns unknown",
288303
addr: mustMultiaddr("/ip4/127.0.0.1/udp/8080"),
@@ -315,6 +330,8 @@ func TestTransportTypePriority(t *testing.T) {
315330
{bzz.TransportTCP, 0},
316331
{bzz.TransportWS, 1},
317332
{bzz.TransportWSS, 2},
333+
{bzz.TransportQUICV1, 3},
334+
{bzz.TransportQUIC, 3},
318335
{bzz.TransportUnknown, 3},
319336
}
320337

@@ -326,15 +343,24 @@ func TestTransportTypePriority(t *testing.T) {
326343
})
327344
}
328345

329-
// Verify priority ordering: TCP < WS < WSS < Unknown
346+
// Verify priority ordering: TCP < WS < WSS < QUIC/Unknown
330347
if bzz.TransportTCP.Priority() >= bzz.TransportWS.Priority() {
331348
t.Error("TCP priority should be lower (better) than WS")
332349
}
333350
if bzz.TransportWS.Priority() >= bzz.TransportWSS.Priority() {
334351
t.Error("WS priority should be lower (better) than WSS")
335352
}
336-
if bzz.TransportWSS.Priority() >= bzz.TransportUnknown.Priority() {
337-
t.Error("WSS priority should be lower (better) than Unknown")
353+
if bzz.TransportWSS.Priority() >= bzz.TransportQUICV1.Priority() {
354+
t.Error("WSS priority should be lower (better) than QUIC v1")
355+
}
356+
if bzz.TransportWSS.Priority() >= bzz.TransportQUIC.Priority() {
357+
t.Error("WSS priority should be lower (better) than legacy QUIC")
358+
}
359+
if bzz.TransportQUICV1.Priority() != bzz.TransportUnknown.Priority() {
360+
t.Error("QUIC v1 priority should match Unknown")
361+
}
362+
if bzz.TransportQUIC.Priority() != bzz.TransportUnknown.Priority() {
363+
t.Error("legacy QUIC priority should match Unknown")
338364
}
339365
}
340366

pkg/p2p/libp2p/metrics.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@ const (
2020
)
2121

2222
var (
23+
// TCP/WS/WSS only: bee does not register QUIC today.
2324
transportLabelValues = []string{
2425
bzz.TransportTCP.String(),
2526
bzz.TransportWS.String(),
2627
bzz.TransportWSS.String(),
27-
bzz.TransportQUICV1.String(),
28-
bzz.TransportQUIC.String(),
2928
bzz.TransportUnknown.String(),
3029
}
3130
publicLabelValues = []string{"true", "false"}
@@ -56,14 +55,16 @@ func newMetrics() metrics {
5655
transportHelp := "The 'transport' label is one of: " + strings.Join(transportLabelValues, ", ")
5756
publicHelp := "The 'public' label is one of: " + strings.Join(publicLabelValues, ", ") + " (true = public remote multiaddr)."
5857

58+
connectionLabels := []string{connectionTransportLabelName, connectionPublicLabelName}
59+
5960
createdConnectionCount := prometheus.NewCounterVec(
6061
prometheus.CounterOpts{
6162
Namespace: m.Namespace,
6263
Subsystem: subsystem,
6364
Name: "created_connection_count",
64-
Help: "Number of initiated outgoing libp2p connections. " + transportHelp,
65+
Help: "Number of initiated outgoing libp2p connections. " + transportHelp + " " + publicHelp,
6566
},
66-
[]string{connectionTransportLabelName},
67+
connectionLabels,
6768
)
6869

6970
handledConnectionCount := prometheus.NewCounterVec(
@@ -73,14 +74,14 @@ func newMetrics() metrics {
7374
Name: "handled_connection_count",
7475
Help: "Number of handled incoming libp2p connections. " + transportHelp + " " + publicHelp,
7576
},
76-
[]string{connectionTransportLabelName, connectionPublicLabelName},
77+
connectionLabels,
7778
)
7879

7980
// Ensure all expected label value combinations exist as 0-valued series,
8081
// so Grafana shows a flat line instead of "No Data".
8182
for _, transport := range transportLabelValues {
82-
createdConnectionCount.WithLabelValues(transport).Add(0)
8383
for _, public := range publicLabelValues {
84+
createdConnectionCount.WithLabelValues(transport, public).Add(0)
8485
handledConnectionCount.WithLabelValues(transport, public).Add(0)
8586
}
8687
}
@@ -164,21 +165,24 @@ func newMetrics() metrics {
164165
}
165166

166167
func (m metrics) incCreatedConnection(addr ma.Multiaddr) {
167-
m.CreatedConnectionCount.WithLabelValues(connectionTransportLabel(addr)).Inc()
168+
m.CreatedConnectionCount.WithLabelValues(connectionTransportLabel(addr), connectionPublicLabel(addr)).Inc()
168169
}
169170

170171
func (m metrics) observeHandledConnection(addr ma.Multiaddr) {
171-
public := "false"
172-
if manet.IsPublicAddr(addr) {
173-
public = "true"
174-
}
175-
m.HandledConnectionCount.WithLabelValues(connectionTransportLabel(addr), public).Inc()
172+
m.HandledConnectionCount.WithLabelValues(connectionTransportLabel(addr), connectionPublicLabel(addr)).Inc()
176173
}
177174

178175
func connectionTransportLabel(addr ma.Multiaddr) string {
179176
return bzz.ClassifyTransport(addr).String()
180177
}
181178

179+
func connectionPublicLabel(addr ma.Multiaddr) string {
180+
if manet.IsPublicAddr(addr) {
181+
return "true"
182+
}
183+
return "false"
184+
}
185+
182186
func (s *Service) Metrics() []prometheus.Collector {
183187
collectors := append(m.PrometheusCollectorsFromFields(s.metrics), s.handshakeService.Metrics()...)
184188
if mc, ok := s.reacher.(interface{ Metrics() []prometheus.Collector }); ok {

0 commit comments

Comments
 (0)