diff --git a/lib/gat/handlers/pool/pools/basic/pool.go b/lib/gat/handlers/pool/pools/basic/pool.go
index bfbb6c10f34b88fa9f7b607605ccb7ca4deece13..978cf8e55ac8d30f0ed713b6c35acddace4ec5e4 100644
--- a/lib/gat/handlers/pool/pools/basic/pool.go
+++ b/lib/gat/handlers/pool/pools/basic/pool.go
@@ -2,6 +2,7 @@ package basic
 
 import (
 	"fmt"
+	"gfx.cafe/gfx/pggat/lib/fed/middlewares/tracing"
 	"sync"
 
 	"github.com/google/uuid"
@@ -156,6 +157,10 @@ func (T *Pool) removeClient(client *Client) {
 }
 
 func (T *Pool) Serve(conn *fed.Conn) error {
+	conn.Middleware = append(
+		conn.Middleware,
+		tracing.NewPgTrace(conn.Ctx))
+
 	if T.config.ParameterStatusSync == ParameterStatusSyncDynamic {
 		conn.Middleware = append(
 			conn.Middleware,
diff --git a/lib/gat/handlers/pool/pools/hybrid/pool.go b/lib/gat/handlers/pool/pools/hybrid/pool.go
index 6bf3aaf1eb2dbc3df533a6c51e38fa4af9bf98f0..072ba12b058789b42f44a23cbcbe5fe4c2d80301 100644
--- a/lib/gat/handlers/pool/pools/hybrid/pool.go
+++ b/lib/gat/handlers/pool/pools/hybrid/pool.go
@@ -2,6 +2,7 @@ package hybrid
 
 import (
 	"fmt"
+	"gfx.cafe/gfx/pggat/lib/fed/middlewares/tracing"
 	"sync"
 
 	"github.com/google/uuid"
@@ -122,6 +123,7 @@ func (T *Pool) serveRW(conn *fed.Conn) error {
 
 	conn.Middleware = append(
 		conn.Middleware,
+		tracing.NewPgTrace(conn.Ctx),
 		unterminate.Unterminate,
 		psa,
 		eqpa,
@@ -319,6 +321,7 @@ func (T *Pool) serveOnly(conn *fed.Conn, write bool) error {
 
 	conn.Middleware = append(
 		conn.Middleware,
+		tracing.NewPgTrace(conn.Ctx),
 		unterminate.Unterminate,
 		ps.NewClient(conn.InitialParameters),
 		eqp.NewClient(),
diff --git a/lib/gat/handlers/pool/spool/pool.go b/lib/gat/handlers/pool/spool/pool.go
index 7589ae16ea073585b4a480993c909d517d9d82f6..9498a695d46572678672e18b5d50ab804e364e04 100644
--- a/lib/gat/handlers/pool/spool/pool.go
+++ b/lib/gat/handlers/pool/spool/pool.go
@@ -1,6 +1,7 @@
 package spool
 
 import (
+	"gfx.cafe/gfx/pggat/lib/fed/middlewares/tracing"
 	"sync"
 	"time"
 
@@ -53,6 +54,10 @@ func NewPool(config Config) *Pool {
 }
 
 func (T *Pool) addServer(conn *fed.Conn) {
+	conn.Middleware = append(
+		conn.Middleware,
+		tracing.NewPgTrace(conn.Ctx))
+
 	if T.config.UsePS {
 		conn.Middleware = append(
 			conn.Middleware,