From ee5947027014337784af29919ceed447a41efffc Mon Sep 17 00:00:00 2001 From: Alex Valiushko Date: Fri, 19 Dec 2025 16:15:41 -0800 Subject: [PATCH] net/udprelay: remove tailscaled_peer_relay_endpoints_total (#18254) This gauge will be reworked to include endpoint state in future. Updates tailscale/corp#30820 Change-Id: I66f349d89422b46eec4ecbaf1a99ad656c7301f9 Signed-off-by: Alex Valiushko --- net/udprelay/metrics.go | 25 ------------------------- net/udprelay/metrics_test.go | 9 --------- net/udprelay/server.go | 2 -- 3 files changed, 36 deletions(-) diff --git a/net/udprelay/metrics.go b/net/udprelay/metrics.go index 45d3c9f34..b7c0710c2 100644 --- a/net/udprelay/metrics.go +++ b/net/udprelay/metrics.go @@ -22,10 +22,6 @@ var ( cMetricForwarded46Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp4_udp6") cMetricForwarded64Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp6_udp4") cMetricForwarded66Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp6_udp6") - - // [clientmetric.Gauge] does not let us embed existing counters, - // [metrics.addEndpoints] records data into client and user gauges independently. - cMetricEndpoints = clientmetric.NewGauge("udprelay_endpoints") ) type transport string @@ -40,9 +36,6 @@ type forwardedLabel struct { transportOut transport `prom:"transport_out"` } -type endpointLabel struct { -} - type metrics struct { forwarded44Packets expvar.Int forwarded46Packets expvar.Int @@ -53,8 +46,6 @@ type metrics struct { forwarded46Bytes expvar.Int forwarded64Bytes expvar.Int forwarded66Bytes expvar.Int - - endpoints expvar.Int } // registerMetrics publishes user and client metric counters for peer relay server. @@ -74,12 +65,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics { "counter", "Number of bytes forwarded via Peer Relay", ) - uMetricEndpoints = usermetric.NewMultiLabelMapWithRegistry[endpointLabel]( - reg, - "tailscaled_peer_relay_endpoints_total", - "gauge", - "Number of allocated Peer Relay endpoints", - ) forwarded44 = forwardedLabel{transportIn: transportUDP4, transportOut: transportUDP4} forwarded46 = forwardedLabel{transportIn: transportUDP4, transportOut: transportUDP6} forwarded64 = forwardedLabel{transportIn: transportUDP6, transportOut: transportUDP4} @@ -98,8 +83,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics { uMetricForwardedBytes.Set(forwarded64, &m.forwarded64Bytes) uMetricForwardedBytes.Set(forwarded66, &m.forwarded66Bytes) - uMetricEndpoints.Set(endpointLabel{}, &m.endpoints) - // Publish client metrics. cMetricForwarded44Packets.Register(&m.forwarded44Packets) cMetricForwarded46Packets.Register(&m.forwarded46Packets) @@ -113,13 +96,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics { return m } -// addEndpoints updates the total endpoints gauge. Value can be negative. -// It records two gauges independently, see [cMetricEndpoints] doc. -func (m *metrics) addEndpoints(value int64) { - m.endpoints.Add(value) - cMetricEndpoints.Add(value) -} - // countForwarded records user and client metrics according to the // inbound and outbound address families. func (m *metrics) countForwarded(in4, out4 bool, bytes, packets int64) { @@ -149,5 +125,4 @@ func deregisterMetrics() { cMetricForwarded46Bytes.UnregisterAll() cMetricForwarded64Bytes.UnregisterAll() cMetricForwarded66Bytes.UnregisterAll() - cMetricEndpoints.Set(0) } diff --git a/net/udprelay/metrics_test.go b/net/udprelay/metrics_test.go index 25345dc6b..5c6a75113 100644 --- a/net/udprelay/metrics_test.go +++ b/net/udprelay/metrics_test.go @@ -22,20 +22,11 @@ func TestMetrics(t *testing.T) { want := []string{ "tailscaled_peer_relay_forwarded_packets_total", "tailscaled_peer_relay_forwarded_bytes_total", - "tailscaled_peer_relay_endpoints_total", } slices.Sort(have) slices.Sort(want) c.Assert(have, qt.CmpEquals(), want) - // Validate addEndpoints. - m.addEndpoints(1) - c.Assert(m.endpoints.Value(), qt.Equals, int64(1)) - c.Assert(cMetricEndpoints.Value(), qt.Equals, int64(1)) - m.addEndpoints(-1) - c.Assert(m.endpoints.Value(), qt.Equals, int64(0)) - c.Assert(cMetricEndpoints.Value(), qt.Equals, int64(0)) - // Validate countForwarded. m.countForwarded(true, true, 1, 1) c.Assert(m.forwarded44Bytes.Value(), qt.Equals, int64(1)) diff --git a/net/udprelay/server.go b/net/udprelay/server.go index e98fdf7bb..acdbf5ad6 100644 --- a/net/udprelay/server.go +++ b/net/udprelay/server.go @@ -673,7 +673,6 @@ func (s *Server) endpointGCLoop() { defer s.mu.Unlock() for k, v := range s.serverEndpointByDisco { if v.isExpired(now, s.bindLifetime, s.steadyStateLifetime) { - s.metrics.addEndpoints(-1) delete(s.serverEndpointByDisco, k) s.serverEndpointByVNI.Delete(v.vni) } @@ -969,7 +968,6 @@ func (s *Server) AllocateEndpoint(discoA, discoB key.DiscoPublic) (endpoint.Serv s.serverEndpointByVNI.Store(e.vni, e) s.logf("allocated endpoint vni=%d lamportID=%d disco[0]=%v disco[1]=%v", e.vni, e.lamportID, pair.Get()[0].ShortString(), pair.Get()[1].ShortString()) - s.metrics.addEndpoints(1) return endpoint.ServerEndpoint{ ServerDisco: s.discoPublic, ClientDisco: pair.Get(),