From 730dd1733e3a1651fa8cb0fc537327318cda0024 Mon Sep 17 00:00:00 2001 From: pascal-fischer <32096965+pascal-fischer@users.noreply.github.com> Date: Sun, 15 Sep 2024 16:46:55 +0200 Subject: [PATCH] [signal] Fix signal active peers metrics (#2591) --- signal/peer/peer.go | 9 ++++++--- signal/server/signal.go | 3 --- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/signal/peer/peer.go b/signal/peer/peer.go index 85de91581..ed2360d67 100644 --- a/signal/peer/peer.go +++ b/signal/peer/peer.go @@ -82,8 +82,11 @@ func (registry *Registry) Register(peer *Peer) { log.Warnf("peer [%s] is already registered [new streamID %d, previous StreamID %d]. Will override stream.", peer.Id, peer.StreamID, pp.StreamID) registry.Peers.Store(peer.Id, peer) + return } + log.Debugf("peer registered [%s]", peer.Id) + registry.metrics.ActivePeers.Add(context.Background(), 1) // record time as milliseconds registry.metrics.RegistrationDelay.Record(context.Background(), float64(time.Since(start).Nanoseconds())/1e6) @@ -105,8 +108,8 @@ func (registry *Registry) Deregister(peer *Peer) { peer.Id, pp.StreamID, peer.StreamID) return } + registry.metrics.ActivePeers.Add(context.Background(), -1) + log.Debugf("peer deregistered [%s]", peer.Id) + registry.metrics.Deregistrations.Add(context.Background(), 1) } - log.Debugf("peer deregistered [%s]", peer.Id) - - registry.metrics.Deregistrations.Add(context.Background(), 1) } diff --git a/signal/server/signal.go b/signal/server/signal.go index 69387cc69..b268aa3fc 100644 --- a/signal/server/signal.go +++ b/signal/server/signal.go @@ -133,8 +133,6 @@ func (s *Server) RegisterPeer(stream proto.SignalExchange_ConnectStreamServer) ( s.registry.Register(p) s.dispatcher.ListenForMessages(stream.Context(), p.Id, s.forwardMessageToPeer) - s.metrics.ActivePeers.Add(stream.Context(), 1) - return p, nil } else { s.metrics.RegistrationFailures.Add(stream.Context(), 1, metric.WithAttributes(attribute.String(labelError, labelErrorMissingId))) @@ -151,7 +149,6 @@ func (s *Server) DeregisterPeer(p *peer.Peer) { s.registry.Deregister(p) s.metrics.PeerConnectionDuration.Record(p.Stream.Context(), int64(time.Since(p.RegisteredAt).Seconds())) - s.metrics.ActivePeers.Add(context.Background(), -1) } func (s *Server) forwardMessageToPeer(ctx context.Context, msg *proto.EncryptedMessage) {