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