Fix upstream gauge metric

It wasn't decremented on error. While at it, increment it when
connecting to the upstream network.

git-svn-id: file:///srv/svn/repo/suika/trunk@733 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This commit is contained in:
contact 2021-12-02 10:03:56 +00:00
parent 6c2a942af3
commit 49d75b4a4b

View File

@ -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
}