Compare commits

..

1 Commits

Author SHA1 Message Date
Gábor Farkas 9a89e155e7 datasources: querier: log the statuscode not the pointer 2026-01-13 13:40:47 +01:00
4 changed files with 17 additions and 24 deletions
+4 -5
View File
@@ -19,7 +19,6 @@ import (
"github.com/grafana/grafana/pkg/expr"
"github.com/grafana/grafana/pkg/services/datasources"
"github.com/grafana/grafana/pkg/services/dsquerierclient"
"github.com/grafana/grafana/pkg/services/validations"
"github.com/grafana/grafana/pkg/setting"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
@@ -157,7 +156,7 @@ func (r *queryREST) Connect(connectCtx context.Context, name string, _ runtime.O
}
}
}
connectLogger.Debug("responder sending status code", "statusCode", statusCode, "caller", getCaller(ctx))
connectLogger.Debug("responder sending status code", "statusCode", *statusCode, "caller", getCaller(ctx))
},
func(err error) {
@@ -341,8 +340,8 @@ func prepareQuery(
}, nil
}
func handlePreparedQuery(ctx context.Context, pq *preparedQuery, concurrentQueryLimit int, validator validations.DataSourceRequestValidator) (*backend.QueryDataResponse, error) {
resp, err := service.QueryData(ctx, pq.logger, pq.cache, pq.exprSvc, pq.mReq, pq.builder, pq.headers, concurrentQueryLimit, validator)
func handlePreparedQuery(ctx context.Context, pq *preparedQuery, concurrentQueryLimit int) (*backend.QueryDataResponse, error) {
resp, err := service.QueryData(ctx, pq.logger, pq.cache, pq.exprSvc, pq.mReq, pq.builder, pq.headers, concurrentQueryLimit)
pq.reportMetrics()
return resp, err
}
@@ -360,7 +359,7 @@ func handleQuery(
responder.Error(err)
return nil, err
}
return handlePreparedQuery(ctx, pq, b.concurrentQueryLimit, b.dataSourceRequestValidator)
return handlePreparedQuery(ctx, pq, b.concurrentQueryLimit)
}
type responderWrapper struct {
+9 -15
View File
@@ -32,7 +32,6 @@ import (
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore"
"github.com/grafana/grafana/pkg/services/validations"
"github.com/grafana/grafana/pkg/setting"
)
@@ -45,15 +44,14 @@ type QueryAPIBuilder struct {
authorizer authorizer.Authorizer
tracer tracing.Tracer
metrics *metrics.ExprMetrics
instanceProvider clientapi.InstanceProvider
registry query.DataSourceApiServerRegistry
converter *expr.ResultConverter
queryTypes *query.QueryTypeDefinitionList
legacyDatasourceLookup service.LegacyDataSourceLookup
connections DataSourceConnectionProvider
dataSourceRequestValidator validations.DataSourceRequestValidator
tracer tracing.Tracer
metrics *metrics.ExprMetrics
instanceProvider clientapi.InstanceProvider
registry query.DataSourceApiServerRegistry
converter *expr.ResultConverter
queryTypes *query.QueryTypeDefinitionList
legacyDatasourceLookup service.LegacyDataSourceLookup
connections DataSourceConnectionProvider
}
func NewQueryAPIBuilder(
@@ -66,7 +64,6 @@ func NewQueryAPIBuilder(
legacyDatasourceLookup service.LegacyDataSourceLookup,
connections DataSourceConnectionProvider,
concurrentQueryLimit int,
dataSourceRequestValidator validations.DataSourceRequestValidator,
) (*QueryAPIBuilder, error) {
// Include well typed query definitions
var queryTypes *query.QueryTypeDefinitionList
@@ -99,8 +96,7 @@ func NewQueryAPIBuilder(
Features: features,
Tracer: tracer,
},
legacyDatasourceLookup: legacyDatasourceLookup,
dataSourceRequestValidator: dataSourceRequestValidator,
legacyDatasourceLookup: legacyDatasourceLookup,
}, nil
}
@@ -117,7 +113,6 @@ func RegisterAPIService(
tracer tracing.Tracer,
legacyDatasourceLookup service.LegacyDataSourceLookup,
exprService *expr.Service,
dataSourceRequestValidator validations.DataSourceRequestValidator,
) (*QueryAPIBuilder, error) {
if !featuremgmt.AnyEnabled(features,
featuremgmt.FlagQueryService,
@@ -150,7 +145,6 @@ func RegisterAPIService(
legacyDatasourceLookup,
&connectionsProvider{dsService: dataSourcesService, registry: reg},
cfg.SectionWithEnvOverrides("query").Key("concurrent_query_limit").MustInt(runtime.NumCPU()),
dataSourceRequestValidator,
)
apiregistration.RegisterAPI(builder)
return builder, err
+2 -2
View File
@@ -888,7 +888,7 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
return nil, err
}
legacyDataSourceLookup := service9.ProvideLegacyDataSourceLookup(service15)
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService, ossDataSourceRequestValidator)
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
if err != nil {
return nil, err
}
@@ -1556,7 +1556,7 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
return nil, err
}
legacyDataSourceLookup := service9.ProvideLegacyDataSourceLookup(service15)
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService, ossDataSourceRequestValidator)
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
if err != nil {
return nil, err
}
+2 -2
View File
@@ -226,12 +226,12 @@ func buildErrorResponses(err error, queries []*simplejson.Json) splitResponse {
return splitResponse{er, http.Header{}}
}
func QueryData(ctx context.Context, log log.Logger, dscache datasources.CacheService, exprService *expr.Service, reqDTO dtos.MetricRequest, qsDatasourceClientBuilder dsquerierclient.QSDatasourceClientBuilder, headers map[string]string, concurrentQueryLimit int, validator validations.DataSourceRequestValidator) (*backend.QueryDataResponse, error) {
func QueryData(ctx context.Context, log log.Logger, dscache datasources.CacheService, exprService *expr.Service, reqDTO dtos.MetricRequest, qsDatasourceClientBuilder dsquerierclient.QSDatasourceClientBuilder, headers map[string]string, concurrentQueryLimit int) (*backend.QueryDataResponse, error) {
s := &ServiceImpl{
log: log,
dataSourceCache: dscache,
expressionService: exprService,
dataSourceRequestValidator: validator,
dataSourceRequestValidator: validations.ProvideValidator(),
qsDatasourceClientBuilder: qsDatasourceClientBuilder,
headers: headers,
concurrentQueryLimit: concurrentQueryLimit,