From 94dd4105e2cfe2e0b4e054cb0e8dbf08bf57dff8 Mon Sep 17 00:00:00 2001 From: Sven Grossmann Date: Thu, 25 Jul 2024 07:39:34 +0200 Subject: [PATCH] Loki: Allow alert headers to be forwarded (#90890) * Loki: Allow alert headers to be forwarded * Loki: fix tests --------- Co-authored-by: Yuri Tseretyan --- pkg/services/ngalert/eval/eval.go | 2 +- pkg/services/ngalert/eval/eval_test.go | 6 +++--- pkg/tsdb/loki/loki.go | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) 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 {