From 2cce9aa2f7112a868225145712fdd9f458a756a3 Mon Sep 17 00:00:00 2001 From: ismail simsek Date: Tue, 5 Mar 2024 14:34:08 +0100 Subject: [PATCH] Chore: Move tracing function in influxdb package (#83899) move tracing function in influxdb package --- pkg/tsdb/influxdb/influxql/influxql.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/tsdb/influxdb/influxql/influxql.go b/pkg/tsdb/influxdb/influxql/influxql.go index 88a7ac7b1bd..ada4a2eade3 100644 --- a/pkg/tsdb/influxdb/influxql/influxql.go +++ b/pkg/tsdb/influxdb/influxql/influxql.go @@ -12,6 +12,7 @@ import ( "github.com/grafana/dskit/concurrency" "github.com/grafana/grafana-plugin-sdk-go/backend" + "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" "github.com/grafana/grafana/pkg/infra/log" @@ -20,7 +21,6 @@ import ( "github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/buffered" "github.com/grafana/grafana/pkg/tsdb/influxdb/influxql/querydata" "github.com/grafana/grafana/pkg/tsdb/influxdb/models" - "github.com/grafana/grafana/pkg/tsdb/prometheus/utils" ) const defaultRetentionPolicy = "default" @@ -180,7 +180,7 @@ func execute(ctx context.Context, tracer trace.Tracer, dsInfo *models.Datasource } }() - _, endSpan := utils.StartTrace(ctx, tracer, "datasource.influxdb.influxql.parseResponse") + _, endSpan := startTrace(ctx, tracer, "datasource.influxdb.influxql.parseResponse") defer endSpan() var resp *backend.DataResponse @@ -192,3 +192,14 @@ func execute(ctx context.Context, tracer trace.Tracer, dsInfo *models.Datasource } return *resp, nil } + +// startTrace setups a trace but does not panic if tracer is nil which helps with testing +func startTrace(ctx context.Context, tracer trace.Tracer, name string, attributes ...attribute.KeyValue) (context.Context, func()) { + if tracer == nil { + return ctx, func() {} + } + ctx, span := tracer.Start(ctx, name, trace.WithAttributes(attributes...)) + return ctx, func() { + span.End() + } +}