From d11216917b2e85a6f522c36e4d170ae940c6bb2c Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 2 Dec 2021 11:03:56 +0100 Subject: [PATCH] Fix upstream gauge metric It wasn't decremented on error. While at it, increment it when connecting to the upstream network. --- user.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/user.go b/user.go index ef3df38..84c7b0c 100644 --- a/user.go +++ b/user.go @@ -202,10 +202,13 @@ func (net *network) run() { } lastTry = time.Now() + net.user.srv.metrics.upstreams.Add(1) + uc, err := connectToUpstream(context.TODO(), net) if err != nil { net.logger.Printf("failed to connect to upstream server %q: %v", net.Addr, err) net.user.events <- eventUpstreamConnectionError{net, fmt.Errorf("failed to connect: %v", err)} + net.user.srv.metrics.upstreams.Add(-1) continue } @@ -213,8 +216,6 @@ func (net *network) run() { net.user.srv.Identd.Store(uc.RemoteAddr().String(), uc.LocalAddr().String(), userIdent(&net.user.User)) } - net.user.srv.metrics.upstreams.Add(1) - uc.register() if err := uc.runUntilRegistered(); err != nil { text := err.Error() @@ -224,6 +225,7 @@ func (net *network) run() { uc.logger.Printf("failed to register: %v", text) net.user.events <- eventUpstreamConnectionError{net, fmt.Errorf("failed to register: %v", text)} uc.Close() + net.user.srv.metrics.upstreams.Add(-1) continue }