mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-24 00:18:20 -05:00
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:
@@ -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)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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(),
|
||||||
|
|||||||
Reference in New Issue
Block a user