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 <alexvaliushko@tailscale.com>
This commit is contained in:
Alex Valiushko
2025-12-19 16:15:41 -08:00
committed by GitHub
parent 90b4358113
commit ee59470270
3 changed files with 0 additions and 36 deletions

View File

@@ -22,10 +22,6 @@
cMetricForwarded46Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp4_udp6") cMetricForwarded46Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp4_udp6")
cMetricForwarded64Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp6_udp4") cMetricForwarded64Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp6_udp4")
cMetricForwarded66Bytes = clientmetric.NewAggregateCounter("udprelay_forwarded_bytes_udp6_udp6") 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 type transport string
@@ -40,9 +36,6 @@ type forwardedLabel struct {
transportOut transport `prom:"transport_out"` transportOut transport `prom:"transport_out"`
} }
type endpointLabel struct {
}
type metrics struct { type metrics struct {
forwarded44Packets expvar.Int forwarded44Packets expvar.Int
forwarded46Packets expvar.Int forwarded46Packets expvar.Int
@@ -53,8 +46,6 @@ type metrics struct {
forwarded46Bytes expvar.Int forwarded46Bytes expvar.Int
forwarded64Bytes expvar.Int forwarded64Bytes expvar.Int
forwarded66Bytes expvar.Int forwarded66Bytes expvar.Int
endpoints expvar.Int
} }
// registerMetrics publishes user and client metric counters for peer relay server. // registerMetrics publishes user and client metric counters for peer relay server.
@@ -74,12 +65,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics {
"counter", "counter",
"Number of bytes forwarded via Peer Relay", "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} forwarded44 = forwardedLabel{transportIn: transportUDP4, transportOut: transportUDP4}
forwarded46 = forwardedLabel{transportIn: transportUDP4, transportOut: transportUDP6} forwarded46 = forwardedLabel{transportIn: transportUDP4, transportOut: transportUDP6}
forwarded64 = forwardedLabel{transportIn: transportUDP6, transportOut: transportUDP4} forwarded64 = forwardedLabel{transportIn: transportUDP6, transportOut: transportUDP4}
@@ -98,8 +83,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics {
uMetricForwardedBytes.Set(forwarded64, &m.forwarded64Bytes) uMetricForwardedBytes.Set(forwarded64, &m.forwarded64Bytes)
uMetricForwardedBytes.Set(forwarded66, &m.forwarded66Bytes) uMetricForwardedBytes.Set(forwarded66, &m.forwarded66Bytes)
uMetricEndpoints.Set(endpointLabel{}, &m.endpoints)
// Publish client metrics. // Publish client metrics.
cMetricForwarded44Packets.Register(&m.forwarded44Packets) cMetricForwarded44Packets.Register(&m.forwarded44Packets)
cMetricForwarded46Packets.Register(&m.forwarded46Packets) cMetricForwarded46Packets.Register(&m.forwarded46Packets)
@@ -113,13 +96,6 @@ func registerMetrics(reg *usermetric.Registry) *metrics {
return m 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 // countForwarded records user and client metrics according to the
// inbound and outbound address families. // inbound and outbound address families.
func (m *metrics) countForwarded(in4, out4 bool, bytes, packets int64) { func (m *metrics) countForwarded(in4, out4 bool, bytes, packets int64) {
@@ -149,5 +125,4 @@ func deregisterMetrics() {
cMetricForwarded46Bytes.UnregisterAll() cMetricForwarded46Bytes.UnregisterAll()
cMetricForwarded64Bytes.UnregisterAll() cMetricForwarded64Bytes.UnregisterAll()
cMetricForwarded66Bytes.UnregisterAll() cMetricForwarded66Bytes.UnregisterAll()
cMetricEndpoints.Set(0)
} }

View File

@@ -22,20 +22,11 @@ func TestMetrics(t *testing.T) {
want := []string{ want := []string{
"tailscaled_peer_relay_forwarded_packets_total", "tailscaled_peer_relay_forwarded_packets_total",
"tailscaled_peer_relay_forwarded_bytes_total", "tailscaled_peer_relay_forwarded_bytes_total",
"tailscaled_peer_relay_endpoints_total",
} }
slices.Sort(have) slices.Sort(have)
slices.Sort(want) slices.Sort(want)
c.Assert(have, qt.CmpEquals(), 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. // Validate countForwarded.
m.countForwarded(true, true, 1, 1) m.countForwarded(true, true, 1, 1)
c.Assert(m.forwarded44Bytes.Value(), qt.Equals, int64(1)) c.Assert(m.forwarded44Bytes.Value(), qt.Equals, int64(1))

View File

@@ -673,7 +673,6 @@ func (s *Server) endpointGCLoop() {
defer s.mu.Unlock() defer s.mu.Unlock()
for k, v := range s.serverEndpointByDisco { for k, v := range s.serverEndpointByDisco {
if v.isExpired(now, s.bindLifetime, s.steadyStateLifetime) { if v.isExpired(now, s.bindLifetime, s.steadyStateLifetime) {
s.metrics.addEndpoints(-1)
delete(s.serverEndpointByDisco, k) delete(s.serverEndpointByDisco, k)
s.serverEndpointByVNI.Delete(v.vni) 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.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.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{ return endpoint.ServerEndpoint{
ServerDisco: s.discoPublic, ServerDisco: s.discoPublic,
ClientDisco: pair.Get(), ClientDisco: pair.Get(),