SQL Expressions: (chore) Set error on SQL Execute span (#109268)

This commit is contained in:
Kyle Brandt
2025-08-07 08:43:39 -04:00
committed by GitHub
parent 2a0944a92a
commit 561d5e4403
2 changed files with 10 additions and 2 deletions
+4 -2
View File
@@ -7,6 +7,7 @@ import (
"time"
"github.com/grafana/grafana-plugin-sdk-go/data"
"go.opentelemetry.io/otel/codes"
"github.com/grafana/grafana/pkg/apimachinery/errutil"
"github.com/grafana/grafana/pkg/expr/mathexp"
@@ -114,13 +115,15 @@ func (gr *SQLCommand) Execute(ctx context.Context, now time.Time, vars mathexp.V
rsp := mathexp.Results{}
defer func() {
span.End()
duration := float64(time.Since(start).Milliseconds())
statusLabel := "ok"
if rsp.Error != nil {
statusLabel = "error"
span.RecordError(rsp.Error)
span.SetStatus(codes.Error, rsp.Error.Error())
}
span.End()
metrics.SqlCommandCount.WithLabelValues(statusLabel).Inc()
metrics.SqlCommandDuration.WithLabelValues(statusLabel).Observe(duration)
@@ -154,7 +157,6 @@ func (gr *SQLCommand) Execute(ctx context.Context, now time.Time, vars mathexp.V
db := sql.DB{}
frame, err := db.QueryFrames(ctx, tracer, gr.refID, gr.query, allFrames, sql.WithMaxOutputCells(gr.outputLimit), sql.WithTimeout(gr.timeout))
if err != nil {
logger.Error("Failed to query frames", "error", err.Error())
rsp.Error = err
+6
View File
@@ -13,6 +13,7 @@ import (
"github.com/grafana/grafana/pkg/expr/metrics"
"github.com/prometheus/client_golang/prometheus/testutil"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/trace"
)
@@ -187,3 +188,8 @@ type testSpan struct {
func (ts *testSpan) End(opt ...trace.SpanEndOption) {
}
func (ts *testSpan) RecordError(err error, opt ...trace.EventOption) {
}
func (ts *testSpan) SetStatus(code codes.Code, msg string) {}