feat(inputs.http_response): Add User-Agent header (#12324)

This commit is contained in:
Charlie Jonas 2022-12-05 20:52:52 +00:00 committed by GitHub
parent 4a378c6ff9
commit 1a6c363cf1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -18,6 +18,7 @@ import (
"github.com/influxdata/telegraf" "github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/config" "github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/common/tls" "github.com/influxdata/telegraf/plugins/common/tls"
"github.com/influxdata/telegraf/plugins/inputs" "github.com/influxdata/telegraf/plugins/inputs"
) )
@ -198,6 +199,10 @@ func (h *HTTPResponse) httpGather(u string) (map[string]interface{}, map[string]
return nil, nil, err return nil, nil, err
} }
if _, uaPresent := h.Headers["User-Agent"]; !uaPresent {
request.Header.Set("User-Agent", internal.ProductToken())
}
if h.BearerToken != "" { if h.BearerToken != "" {
token, err := os.ReadFile(h.BearerToken) token, err := os.ReadFile(h.BearerToken)
if err != nil { if err != nil {

View File

@ -19,6 +19,7 @@ import (
"github.com/influxdata/telegraf" "github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/config" "github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/common/tls" "github.com/influxdata/telegraf/plugins/common/tls"
"github.com/influxdata/telegraf/testutil" "github.com/influxdata/telegraf/testutil"
) )
@ -169,8 +170,10 @@ func checkOutput(
func TestHeaders(t *testing.T) { func TestHeaders(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
cHeader := r.Header.Get("Content-Type") cHeader := r.Header.Get("Content-Type")
uaHeader := r.Header.Get("User-Agent")
require.Equal(t, "Hello", r.Host) require.Equal(t, "Hello", r.Host)
require.Equal(t, "application/json", cHeader) require.Equal(t, "application/json", cHeader)
require.Equal(t, internal.ProductToken(), uaHeader)
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
})) }))
defer ts.Close() defer ts.Close()