chore(pgx): make it possible to get the raw hooked driver

This commit is contained in:
DevMiner 2024-07-23 17:55:58 +02:00
parent 61763d05af
commit bf66baf3c5

View file

@ -3,6 +3,7 @@ package unitel
import ( import (
"context" "context"
"database/sql" "database/sql"
"database/sql/driver"
"fmt" "fmt"
"strings" "strings"
@ -59,15 +60,19 @@ func (h *tracedPgxHooks) After(ctx context.Context, query string, args ...interf
} }
func (t *Telemetry) RegisterTracedPGx(printQueries bool) { func (t *Telemetry) RegisterTracedPGx(printQueries bool) {
sql.Register(TracedPGxDriverName, t.TracedPGx(printQueries))
log.Debug().Msgf("Registered %s driver", TracedPGxDriverName)
}
func (t *Telemetry) TracedPGx(printQueries bool) driver.Driver {
tracer := t.tracerProvider.Tracer(pgxClientID, trace.WithInstrumentationVersion(libVersion)) tracer := t.tracerProvider.Tracer(pgxClientID, trace.WithInstrumentationVersion(libVersion))
sql.Register(TracedPGxDriverName, sqlhooks.Wrap(&pgx.Driver{}, &tracedPgxHooks{ return sqlhooks.Wrap(&pgx.Driver{}, &tracedPgxHooks{
printQueries: printQueries, printQueries: printQueries,
t: t, t: t,
tracer: tracer, tracer: tracer,
})) })
log.Debug().Msgf("Registered %s driver", TracedPGxDriverName)
} }
func formatArgs(args []interface{}) []string { func formatArgs(args []interface{}) []string {