From d180adadb824d0c9749f208ee582c84a5274b522 Mon Sep 17 00:00:00 2001 From: a <a@tuxpa.in> Date: Mon, 17 Jun 2024 23:01:39 -0500 Subject: [PATCH] noot --- lib/gat/handlers/pool/pools/hybrid/pool.go | 31 +++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/lib/gat/handlers/pool/pools/hybrid/pool.go b/lib/gat/handlers/pool/pools/hybrid/pool.go index 01135460..8a017dab 100644 --- a/lib/gat/handlers/pool/pools/hybrid/pool.go +++ b/lib/gat/handlers/pool/pools/hybrid/pool.go @@ -240,8 +240,10 @@ func (T *Pool) serveRW(l prom.PoolHybridLabels, conn *fed.Conn) error { prom.OperationHybrid.Acquire(l.ToOperation("replica")).Observe(float64(dur) / float64(time.Millisecond)) start := time.Now() err, serverErr = bouncers.Bounce(conn, replica.Conn, packet) - dur := time.Since(start) - prom.OperationHybrid.Execution(l.ToOperation("replica")).Observe(float64(dur) / float64(time.Millisecond)) + if serverErr != nil { + dur := time.Since(start) + prom.OperationHybrid.Execution(l.ToOperation("replica")).Observe(float64(dur) / float64(time.Millisecond)) + } } if serverErr != nil { return fmt.Errorf("server error: %w", serverErr) @@ -315,9 +317,10 @@ func (T *Pool) serveRW(l prom.PoolHybridLabels, conn *fed.Conn) error { prom.OperationHybrid.Acquire(l.ToOperation("primary")).Observe(float64(dur) / float64(time.Millisecond)) start := time.Now() err, serverErr = bouncers.Bounce(conn, primary.Conn, packet) - dur := time.Since(start) - prom.OperationHybrid.Execution(l.ToOperation("primary")).Observe(float64(dur) / float64(time.Millisecond)) - + if serverErr != nil { + dur := time.Since(start) + prom.OperationHybrid.Execution(l.ToOperation("primary")).Observe(float64(dur) / float64(time.Millisecond)) + } } if serverErr != nil { return fmt.Errorf("server error: %w", serverErr) @@ -395,6 +398,14 @@ func (T *Pool) serveOnly(l prom.PoolHybridLabels, conn *fed.Conn, write bool) er conn.Ready = true } + var opL prom.OperationHybridLabels + if write { + opL = l.ToOperation("primary") + } else { + + opL = l.ToOperation("primary") + } + for { if server != nil { sp.Release(server) @@ -410,15 +421,21 @@ func (T *Pool) serveOnly(l prom.PoolHybridLabels, conn *fed.Conn, write bool) er client.SetState(metrics.ConnStateAwaitingServer, nil, true) + start := time.Now() server = sp.Acquire(client.ID) if server == nil { return pool.ErrFailedToAcquirePeer } - err, serverErr = T.Pair(client, server) - + dur := time.Since(start) if err == nil && serverErr == nil { + prom.OperationHybrid.Acquire(opL).Observe(float64(dur) / float64(time.Millisecond)) + start := time.Now() err, serverErr = bouncers.Bounce(conn, server.Conn, packet) + if serverErr != nil { + dur := time.Since(start) + prom.OperationHybrid.Execution(opL).Observe(float64(dur) / float64(time.Millisecond)) + } } if serverErr != nil { return fmt.Errorf("server error: %w", serverErr) -- GitLab