@@ -11,7 +11,6 @@ import (
11
11
"strings"
12
12
"time"
13
13
14
- "github.com/Knetic/govaluate"
15
14
"github.com/bitly/go-simplejson"
16
15
"github.com/grafadruid/go-druid"
17
16
druidquerybuilder "github.com/grafadruid/go-druid/builder"
@@ -196,7 +195,7 @@ type grafanaMetricFindValue struct {
196
195
}
197
196
198
197
func (ds * Service ) QueryVariableData (ctx context.Context , req * backend.CallResourceRequest ) ([]grafanaMetricFindValue , error ) {
199
- s , err := ds .settings (req .PluginContext )
198
+ s , err := ds .settings (req .PluginContext , ctx )
200
199
if err != nil {
201
200
return []grafanaMetricFindValue {}, err
202
201
}
@@ -286,7 +285,7 @@ func (ds *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthRequ
286
285
Message : "Can't connect to Druid" ,
287
286
}
288
287
289
- i , err := ds .im .Get (req .PluginContext )
288
+ i , err := ds .im .Get (ctx , req .PluginContext )
290
289
if err != nil {
291
290
result .Message = "Can't get Druid instance"
292
291
return result , nil
@@ -305,7 +304,7 @@ func (ds *Service) CheckHealth(ctx context.Context, req *backend.CheckHealthRequ
305
304
306
305
func (ds * Service ) QueryData (ctx context.Context , req * backend.QueryDataRequest ) (* backend.QueryDataResponse , error ) {
307
306
response := backend .NewQueryDataResponse ()
308
- s , err := ds .settings (req .PluginContext )
307
+ s , err := ds .settings (req .PluginContext , ctx )
309
308
if err != nil {
310
309
return response , err
311
310
}
@@ -342,8 +341,8 @@ func toHTTPHeaders(rawOriginal interface{}) http.Header {
342
341
return headers
343
342
}
344
343
345
- func (ds * Service ) settings (ctx backend.PluginContext ) (* druidInstanceSettings , error ) {
346
- s , err := ds .im .Get (ctx )
344
+ func (ds * Service ) settings (ctx backend.PluginContext , getCtx context. Context ) (* druidInstanceSettings , error ) {
345
+ s , err := ds .im .Get (getCtx , ctx )
347
346
if err != nil {
348
347
return nil , err
349
348
}
@@ -441,9 +440,6 @@ func (ds *Service) prepareQuery(qry []byte, s *druidInstanceSettings) (druidquer
441
440
defaultQueryContext ,
442
441
ds .prepareQueryContext (queryContextParameters .([]interface {})))
443
442
}
444
- if g , ok := q .Builder ["granularity" ].(map [string ]any ); ok {
445
- q .Builder ["granularity" ] = resolveGranularity (g )
446
- }
447
443
jsonQuery , err := json .Marshal (q .Builder )
448
444
if err != nil {
449
445
return nil , nil , err
@@ -453,28 +449,6 @@ func (ds *Service) prepareQuery(qry []byte, s *druidInstanceSettings) (druidquer
453
449
return query , mergeSettings (s .defaultQuerySettings , q .Settings ), err
454
450
}
455
451
456
- func resolveGranularity (m map [string ]any ) map [string ]any {
457
- // granularity is optional, so return early if not set and is of wrong type
458
- if m == nil || m ["type" ] != "duration" {
459
- return m
460
- }
461
- expr , ok := m ["duration" ].(string )
462
- if ! ok {
463
- return m
464
- }
465
-
466
- eval , err := govaluate .NewEvaluableExpression (expr )
467
- if err != nil {
468
- return m
469
- }
470
- result , err := eval .Evaluate (nil )
471
- if err != nil {
472
- return m
473
- }
474
- m ["duration" ] = result
475
- return m
476
- }
477
-
478
452
func (ds * Service ) prepareQueryContext (parameters []interface {}) map [string ]interface {} {
479
453
ctx := make (map [string ]interface {})
480
454
for _ , parameter := range parameters {
@@ -499,21 +473,21 @@ func (ds *Service) executeQuery(
499
473
return nil , errors .New ("not implemented" )
500
474
case "timeseries" :
501
475
var r result.TimeseriesResult
502
- _ , err := s .client .Query ().Execute (q , & r , headers )
476
+ _ , err := s .client .Query ().Execute (q , & r )
503
477
if err != nil {
504
478
return nil , fmt .Errorf ("Query error: %w" , err )
505
479
}
506
480
resultFramer = & r
507
481
case "topN" :
508
482
var r result.TopNResult
509
- _ , err := s .client .Query ().Execute (q , & r , headers )
483
+ _ , err := s .client .Query ().Execute (q , & r )
510
484
if err != nil {
511
485
return nil , fmt .Errorf ("Query error: %w" , err )
512
486
}
513
487
resultFramer = & r
514
488
case "groupBy" :
515
489
var r result.GroupByResult
516
- _ , err := s .client .Query ().Execute (q , & r , headers )
490
+ _ , err := s .client .Query ().Execute (q , & r )
517
491
if err != nil {
518
492
return nil , fmt .Errorf ("Query error: %w" , err )
519
493
}
@@ -548,7 +522,7 @@ func (ds *Service) oldExecuteQuery(queryRef string, q druidquerybuilder.Query, s
548
522
q .(* druidquery.Scan ).SetResultFormat ("compactedList" )
549
523
}
550
524
var res json.RawMessage
551
- _ , err := s .client .Query ().Execute (q , & res , headers )
525
+ _ , err := s .client .Query ().Execute (q , & res )
552
526
if err != nil {
553
527
return r , err
554
528
}
0 commit comments