SQL Expression: Add instrumentation for sql expressions (#103758)

This commit is contained in:
Sarah Zinger
2025-04-10 19:51:44 +01:00
committed by GitHub
parent 778d0b2da4
commit acd843303e
24 changed files with 223 additions and 143 deletions
-48
View File
@@ -1,48 +0,0 @@
package query
import (
"github.com/prometheus/client_golang/prometheus"
)
const (
metricsSubSystem = "queryservice"
metricsNamespace = "grafana"
)
type queryMetrics struct {
dsRequests *prometheus.CounterVec
// older metric
expressionsQuerySummary *prometheus.SummaryVec
}
func newQueryMetrics(reg prometheus.Registerer) *queryMetrics {
m := &queryMetrics{
dsRequests: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: metricsNamespace,
Subsystem: metricsSubSystem,
Name: "ds_queries_total",
Help: "Number of datasource queries made from the query service",
}, []string{"error", "dataplane", "datasource_type"}),
expressionsQuerySummary: prometheus.NewSummaryVec(
prometheus.SummaryOpts{
Namespace: metricsNamespace,
Subsystem: metricsSubSystem,
Name: "expressions_queries_duration_milliseconds",
Help: "Expressions query summary",
Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
},
[]string{"status"},
),
}
if reg != nil {
reg.MustRegister(
m.dsRequests,
m.expressionsQuerySummary,
)
}
return m
}
+2 -2
View File
@@ -360,7 +360,7 @@ func (b *QueryAPIBuilder) handleExpressions(ctx context.Context, req parsedReque
respStatus = "failure"
}
duration := float64(time.Since(start).Nanoseconds()) / float64(time.Millisecond)
b.metrics.expressionsQuerySummary.WithLabelValues(respStatus).Observe(duration)
b.metrics.ExpressionsQuerySummary.WithLabelValues(respStatus).Observe(duration)
span.End()
}()
@@ -403,7 +403,7 @@ func (b *QueryAPIBuilder) handleExpressions(ctx context.Context, req parsedReque
}
refId := expression.RefID
results, err := expression.Command.Execute(ctx, now, vars, b.tracer)
results, err := expression.Command.Execute(ctx, now, vars, b.tracer, b.metrics)
if err != nil {
expressionsLogger.Error("error executing expression", "error", err)
results.Error = err
+3 -2
View File
@@ -17,6 +17,7 @@ import (
claims "github.com/grafana/authlib/types"
query "github.com/grafana/grafana/pkg/apis/query/v0alpha1"
"github.com/grafana/grafana/pkg/expr"
"github.com/grafana/grafana/pkg/expr/metrics"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/plugins"
@@ -43,7 +44,7 @@ type QueryAPIBuilder struct {
authorizer authorizer.Authorizer
tracer tracing.Tracer
metrics *queryMetrics
metrics *metrics.ExprMetrics
parser *queryParser
client clientapi.DataSourceClientSupplier
registry query.DataSourceApiServerRegistry
@@ -83,7 +84,7 @@ func NewQueryAPIBuilder(features featuremgmt.FeatureToggles,
authorizer: ar,
registry: registry,
parser: newQueryParser(reader, legacy, tracer, log.New("query_parser")),
metrics: newQueryMetrics(registerer),
metrics: metrics.NewQueryServiceExpressionsMetrics(registerer),
tracer: tracer,
features: features,
queryTypes: queryTypes,