diff --git a/pkg/services/ngalert/eval/eval.go b/pkg/services/ngalert/eval/eval.go index 6db029b4bca..d911b1035ff 100644 --- a/pkg/services/ngalert/eval/eval.go +++ b/pkg/services/ngalert/eval/eval.go @@ -334,7 +334,7 @@ func buildDatasourceHeaders(ctx context.Context, metadata map[string]string) map headers := make(map[string]string, len(metadata)+3) for key, value := range metadata { - headers[fmt.Sprintf("X-Rule-%s", key)] = url.QueryEscape(value) + headers[fmt.Sprintf("http_X-Rule-%s", key)] = url.QueryEscape(value) } // Many data sources check this in query method as sometimes alerting needs special considerations. diff --git a/pkg/services/ngalert/eval/eval_test.go b/pkg/services/ngalert/eval/eval_test.go index 52325699d41..e604f48d6c8 100644 --- a/pkg/services/ngalert/eval/eval_test.go +++ b/pkg/services/ngalert/eval/eval_test.go @@ -1262,9 +1262,9 @@ func TestCreate(t *testing.T) { } expectedHeaders := map[string]string{ - "X-Rule-Test1": "data1", - "X-Rule-Test2": "%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0+%F0%9F%8E%B6", - "X-Rule-Test3": "", + "http_X-Rule-Test1": "data1", + "http_X-Rule-Test2": "%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0+%F0%9F%8E%B6", + "http_X-Rule-Test3": "", models.FromAlertHeaderName: "true", models.CacheSkipHeaderName: "true", "X-Grafana-Org-Id": strconv.FormatInt(orgID, 10), diff --git a/pkg/tsdb/loki/loki.go b/pkg/tsdb/loki/loki.go index c89d075ced7..82083af8e82 100644 --- a/pkg/tsdb/loki/loki.go +++ b/pkg/tsdb/loki/loki.go @@ -90,6 +90,7 @@ func newInstanceSettings(httpClientProvider *httpclient.Provider) datasource.Ins if err != nil { return nil, err } + opts.ForwardHTTPHeaders = true client, err := httpClientProvider.New(opts) if err != nil {