From ed52d422c1a4be72a19026252b655bd6975aca8e Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Thu, 8 Sep 2022 11:27:38 +0200 Subject: [PATCH] instrumentation: dont instrument ErrSkip at all (#54880) (#54883) Signed-off-by: bergquist (cherry picked from commit b4e3c89f6096a39013658a508d66ada233401587) Co-authored-by: Carl Bergquist --- pkg/services/sqlstore/database_wrapper.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/services/sqlstore/database_wrapper.go b/pkg/services/sqlstore/database_wrapper.go index caf5dee5564..dbcb7674a57 100644 --- a/pkg/services/sqlstore/database_wrapper.go +++ b/pkg/services/sqlstore/database_wrapper.go @@ -109,9 +109,17 @@ func (h *databaseQueryWrapper) instrument(ctx context.Context, status string, qu // OnError will be called if any error happens func (h *databaseQueryWrapper) OnError(ctx context.Context, err error, query string, args ...interface{}) error { - status := "error" + // Not a user error: driver is telling sql package that an + // optional interface method is not implemented. There is + // nothing to instrument here. // https://golang.org/pkg/database/sql/driver/#ErrSkip - if err == nil || errors.Is(err, driver.ErrSkip) { + // https://github.com/DataDog/dd-trace-go/issues/270 + if errors.Is(err, driver.ErrSkip) { + return nil + } + + status := "error" + if err == nil { status = "success" }