diff --git a/plugins/inputs/http_response/http_response.go b/plugins/inputs/http_response/http_response.go index 5c9521404..b92aa1947 100644 --- a/plugins/inputs/http_response/http_response.go +++ b/plugins/inputs/http_response/http_response.go @@ -18,6 +18,7 @@ import ( "github.com/influxdata/telegraf" "github.com/influxdata/telegraf/config" + "github.com/influxdata/telegraf/internal" "github.com/influxdata/telegraf/plugins/common/tls" "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 } + if _, uaPresent := h.Headers["User-Agent"]; !uaPresent { + request.Header.Set("User-Agent", internal.ProductToken()) + } + if h.BearerToken != "" { token, err := os.ReadFile(h.BearerToken) if err != nil { diff --git a/plugins/inputs/http_response/http_response_test.go b/plugins/inputs/http_response/http_response_test.go index 74615ed58..2bc1279a4 100644 --- a/plugins/inputs/http_response/http_response_test.go +++ b/plugins/inputs/http_response/http_response_test.go @@ -19,6 +19,7 @@ import ( "github.com/influxdata/telegraf" "github.com/influxdata/telegraf/config" + "github.com/influxdata/telegraf/internal" "github.com/influxdata/telegraf/plugins/common/tls" "github.com/influxdata/telegraf/testutil" ) @@ -169,8 +170,10 @@ func checkOutput( func TestHeaders(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { cHeader := r.Header.Get("Content-Type") + uaHeader := r.Header.Get("User-Agent") require.Equal(t, "Hello", r.Host) require.Equal(t, "application/json", cHeader) + require.Equal(t, internal.ProductToken(), uaHeader) w.WriteHeader(http.StatusOK) })) defer ts.Close()