From b2eb7740494995d03479a21304a4a794cc380d4a Mon Sep 17 00:00:00 2001 From: Steven Soroka Date: Fri, 14 Aug 2020 13:43:31 -0400 Subject: [PATCH] http_listener_v2: make http header tags case insensitive (#7986) --- plugins/inputs/http_listener_v2/http_listener_v2.go | 6 +++--- plugins/inputs/http_listener_v2/http_listener_v2_test.go | 2 +- testutil/log.go | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/inputs/http_listener_v2/http_listener_v2.go b/plugins/inputs/http_listener_v2/http_listener_v2.go index 93ab72d26..1023c0d10 100644 --- a/plugins/inputs/http_listener_v2/http_listener_v2.go +++ b/plugins/inputs/http_listener_v2/http_listener_v2.go @@ -232,9 +232,9 @@ func (h *HTTPListenerV2) serveWrite(res http.ResponseWriter, req *http.Request) for _, m := range metrics { for headerName, measurementName := range h.HTTPHeaderTags { - headerValues, foundHeader := req.Header[headerName] - if foundHeader && len(headerValues) > 0 { - m.AddTag(measurementName, headerValues[0]) + headerValues := req.Header.Get(headerName) + if len(headerValues) > 0 { + m.AddTag(measurementName, headerValues) } } diff --git a/plugins/inputs/http_listener_v2/http_listener_v2_test.go b/plugins/inputs/http_listener_v2/http_listener_v2_test.go index 52af1b963..4457fcacd 100644 --- a/plugins/inputs/http_listener_v2/http_listener_v2_test.go +++ b/plugins/inputs/http_listener_v2/http_listener_v2_test.go @@ -383,7 +383,7 @@ func TestWriteHTTPEmpty(t *testing.T) { func TestWriteHTTPTransformHeaderValuesToTagsSingleWrite(t *testing.T) { listener := newTestHTTPListenerV2() - listener.HTTPHeaderTags = map[string]string{"Present_http_header_1": "presentMeasurementKey1", "Present_http_header_2": "presentMeasurementKey2", "NOT_PRESENT_HEADER": "notPresentMeasurementKey"} + listener.HTTPHeaderTags = map[string]string{"Present_http_header_1": "presentMeasurementKey1", "present_http_header_2": "presentMeasurementKey2", "NOT_PRESENT_HEADER": "notPresentMeasurementKey"} acc := &testutil.Accumulator{} require.NoError(t, listener.Start(acc)) diff --git a/testutil/log.go b/testutil/log.go index 5e0458dc7..c81370e23 100644 --- a/testutil/log.go +++ b/testutil/log.go @@ -2,8 +2,12 @@ package testutil import ( "log" + + "github.com/influxdata/telegraf" ) +var _ telegraf.Logger = &Logger{} + // Logger defines a logging structure for plugins. type Logger struct { Name string // Name is the plugin name, will be printed in the `[]`.