summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/extra
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/uptrace/bun/extra')
-rw-r--r--vendor/github.com/uptrace/bun/extra/bunotel/option.go9
-rw-r--r--vendor/github.com/uptrace/bun/extra/bunotel/otel.go22
2 files changed, 22 insertions, 9 deletions
diff --git a/vendor/github.com/uptrace/bun/extra/bunotel/option.go b/vendor/github.com/uptrace/bun/extra/bunotel/option.go
index 4c9c90a30..4824f3863 100644
--- a/vendor/github.com/uptrace/bun/extra/bunotel/option.go
+++ b/vendor/github.com/uptrace/bun/extra/bunotel/option.go
@@ -1,6 +1,7 @@
package bunotel
import (
+ "github.com/uptrace/bun"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric"
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
@@ -33,6 +34,14 @@ func WithFormattedQueries(format bool) Option {
}
}
+// WithSpanNameFormatter takes a function that determines the span name
+// for a given query event.
+func WithSpanNameFormatter(f func(*bun.QueryEvent) string) Option {
+ return func(h *QueryHook) {
+ h.spanNameFormatter = f
+ }
+}
+
// WithTracerProvider returns an Option to use the TracerProvider when
// creating a Tracer.
func WithTracerProvider(tp trace.TracerProvider) Option {
diff --git a/vendor/github.com/uptrace/bun/extra/bunotel/otel.go b/vendor/github.com/uptrace/bun/extra/bunotel/otel.go
index 66b88e989..db098bc6a 100644
--- a/vendor/github.com/uptrace/bun/extra/bunotel/otel.go
+++ b/vendor/github.com/uptrace/bun/extra/bunotel/otel.go
@@ -22,11 +22,12 @@ import (
)
type QueryHook struct {
- attrs []attribute.KeyValue
- formatQueries bool
- tracer trace.Tracer
- meter metric.Meter
- queryHistogram metric.Int64Histogram
+ attrs []attribute.KeyValue
+ formatQueries bool
+ tracer trace.Tracer
+ meter metric.Meter
+ queryHistogram metric.Int64Histogram
+ spanNameFormatter func(*bun.QueryEvent) string
}
var _ bun.QueryHook = (*QueryHook)(nil)
@@ -86,7 +87,11 @@ func (h *QueryHook) AfterQuery(ctx context.Context, event *bun.QueryEvent) {
return
}
- span.SetName(operation)
+ name := operation
+ if h.spanNameFormatter != nil {
+ name = h.spanNameFormatter(event)
+ }
+ span.SetName(name)
defer span.End()
query := h.eventQuery(event)
@@ -106,9 +111,8 @@ func (h *QueryHook) AfterQuery(ctx context.Context, event *bun.QueryEvent) {
attrs = append(attrs, sys)
}
if event.Result != nil {
- if n, _ := event.Result.RowsAffected(); n > 0 {
- attrs = append(attrs, attribute.Int64("db.rows_affected", n))
- }
+ rows, _ := event.Result.RowsAffected()
+ attrs = append(attrs, attribute.Int64("db.rows_affected", rows))
}
switch event.Err {