http_listener_v2: make http header tags case insensitive (#7986)

This commit is contained in:
Steven Soroka 2020-08-14 13:43:31 -04:00 committed by GitHub
parent b8b6f2e533
commit b2eb774049
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 4 deletions

View File

@ -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)
}
}

View File

@ -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))

View File

@ -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 `[]`.