Prometheus: Fix passing of custom params when running queries (#42728)

* Prometheus: Fix passing of custom params

* Remove prints
pull/41618/head
Ivana Huckova 4 years ago committed by GitHub
parent 8722c19cc3
commit 21fe78302b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      pkg/tsdb/prometheus/custom_query_params_middleware.go
  2. 8
      pkg/tsdb/prometheus/custom_query_params_middleware_test.go

@ -11,14 +11,25 @@ import (
const (
customQueryParametersMiddlewareName = "prom-custom-query-parameters"
customQueryParametersKey = "customQueryParameters"
grafanaDataKey = "grafanaData"
)
func customQueryParametersMiddleware(logger log.Logger) sdkhttpclient.Middleware {
return sdkhttpclient.NamedMiddlewareFunc(customQueryParametersMiddlewareName, func(opts sdkhttpclient.Options, next http.RoundTripper) http.RoundTripper {
customQueryParamsVal, exists := opts.CustomOptions[customQueryParametersKey]
grafanaData, exists := opts.CustomOptions[grafanaDataKey]
if !exists {
return next
}
data, ok := grafanaData.(map[string]interface{})
if !ok {
return next
}
customQueryParamsVal, exists := data[customQueryParametersKey]
if !exists {
return next
}
customQueryParams, ok := customQueryParamsVal.(string)
if !ok || customQueryParams == "" {
return next

@ -114,7 +114,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
mw := customQueryParametersMiddleware(log.New("test"))
rt := mw.CreateMiddleware(httpclient.Options{
CustomOptions: map[string]interface{}{
customQueryParametersKey: "custom=par/am&second=f oo",
grafanaDataKey: map[string]interface{}{
customQueryParametersKey: "custom=par/am&second=f oo",
},
},
}, finalRoundTripper)
require.NotNil(t, rt)
@ -144,7 +146,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
mw := customQueryParametersMiddleware(log.New("test"))
rt := mw.CreateMiddleware(httpclient.Options{
CustomOptions: map[string]interface{}{
customQueryParametersKey: "custom=par/am&second=f oo",
grafanaDataKey: map[string]interface{}{
customQueryParametersKey: "custom=par/am&second=f oo",
},
},
}, finalRoundTripper)
require.NotNil(t, rt)

Loading…
Cancel
Save