diff --git a/lib/gat/handlers/pool/pools/basic/pool.go b/lib/gat/handlers/pool/pools/basic/pool.go index fb60015dc0e2f0b8db6334b23f851cb0cae5c950..d3674185a6235271c140b2b40e6d8d1afd714061 100644 --- a/lib/gat/handlers/pool/pools/basic/pool.go +++ b/lib/gat/handlers/pool/pools/basic/pool.go @@ -262,8 +262,10 @@ func (T *Pool) Serve(conn *fed.Conn) error { { start := time.Now() err, serverErr = bouncers.Bounce(client.Conn, server.Conn, packet) - dur := time.Since(start) - prom.OperationSimple.Execution(opLabels).Observe(float64(dur) / float64(time.Millisecond)) + if serverErr == nil { + dur := time.Since(start) + prom.OperationSimple.Execution(opLabels).Observe(float64(dur) / float64(time.Millisecond)) + } } } diff --git a/lib/gat/handlers/pool/pools/hybrid/pool.go b/lib/gat/handlers/pool/pools/hybrid/pool.go index 8a017dab37e8b102c7794365d993ea9646813def..c7827cf82f2574941aebf977a4ebac4b9841ae9b 100644 --- a/lib/gat/handlers/pool/pools/hybrid/pool.go +++ b/lib/gat/handlers/pool/pools/hybrid/pool.go @@ -240,7 +240,7 @@ 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) - if serverErr != nil { + if serverErr == nil { dur := time.Since(start) prom.OperationHybrid.Execution(l.ToOperation("replica")).Observe(float64(dur) / float64(time.Millisecond)) } @@ -317,7 +317,7 @@ 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) - if serverErr != nil { + if serverErr == nil { dur := time.Since(start) prom.OperationHybrid.Execution(l.ToOperation("primary")).Observe(float64(dur) / float64(time.Millisecond)) } @@ -432,7 +432,7 @@ func (T *Pool) serveOnly(l prom.PoolHybridLabels, conn *fed.Conn, write bool) er prom.OperationHybrid.Acquire(opL).Observe(float64(dur) / float64(time.Millisecond)) start := time.Now() err, serverErr = bouncers.Bounce(conn, server.Conn, packet) - if serverErr != nil { + if serverErr == nil { dur := time.Since(start) prom.OperationHybrid.Execution(opL).Observe(float64(dur) / float64(time.Millisecond)) }