Add telegraf version to User-Agent header (#4838)
Header is added in influxdb, influxdb_v2, and http outputs.
This commit is contained in:
parent
502d9ab499
commit
44fd74d688
|
@ -187,6 +187,7 @@ func (h *HTTP) write(reqBody []byte) error {
|
||||||
req.SetBasicAuth(h.Username, h.Password)
|
req.SetBasicAuth(h.Username, h.Password)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
req.Header.Set("User-Agent", "Telegraf/"+internal.Version())
|
||||||
req.Header.Set("Content-Type", defaultContentType)
|
req.Header.Set("Content-Type", defaultContentType)
|
||||||
if h.ContentEncoding == "gzip" {
|
if h.ContentEncoding == "gzip" {
|
||||||
req.Header.Set("Content-Encoding", "gzip")
|
req.Header.Set("Content-Encoding", "gzip")
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
|
"github.com/influxdata/telegraf/internal"
|
||||||
"github.com/influxdata/telegraf/metric"
|
"github.com/influxdata/telegraf/metric"
|
||||||
"github.com/influxdata/telegraf/plugins/serializers/influx"
|
"github.com/influxdata/telegraf/plugins/serializers/influx"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -422,3 +423,33 @@ func TestOAuthClientCredentialsGrant(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDefaultUserAgent(t *testing.T) {
|
||||||
|
ts := httptest.NewServer(http.NotFoundHandler())
|
||||||
|
defer ts.Close()
|
||||||
|
|
||||||
|
u, err := url.Parse(fmt.Sprintf("http://%s", ts.Listener.Addr().String()))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
internal.SetVersion("1.2.3")
|
||||||
|
|
||||||
|
t.Run("default-user-agent", func(t *testing.T) {
|
||||||
|
ts.Config.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
require.Equal(t, "Telegraf/1.2.3", r.Header.Get("User-Agent"))
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
|
})
|
||||||
|
|
||||||
|
client := &HTTP{
|
||||||
|
URL: u.String(),
|
||||||
|
Method: defaultMethod,
|
||||||
|
}
|
||||||
|
|
||||||
|
serializer := influx.NewSerializer()
|
||||||
|
client.SetSerializer(serializer)
|
||||||
|
err = client.Connect()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
err = client.Write([]telegraf.Metric{getMetric()})
|
||||||
|
require.NoError(t, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -27,10 +27,8 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultRequestTimeout = time.Second * 5
|
defaultRequestTimeout = time.Second * 5
|
||||||
defaultDatabase = "telegraf"
|
defaultDatabase = "telegraf"
|
||||||
defaultUserAgent = "telegraf"
|
|
||||||
|
|
||||||
errStringDatabaseNotFound = "database not found"
|
errStringDatabaseNotFound = "database not found"
|
||||||
errStringHintedHandoffNotEmpty = "hinted handoff queue not empty"
|
errStringHintedHandoffNotEmpty = "hinted handoff queue not empty"
|
||||||
errStringPartialWrite = "partial write"
|
errStringPartialWrite = "partial write"
|
||||||
|
@ -138,7 +136,7 @@ func NewHTTPClient(config *HTTPConfig) (*httpClient, error) {
|
||||||
|
|
||||||
userAgent := config.UserAgent
|
userAgent := config.UserAgent
|
||||||
if userAgent == "" {
|
if userAgent == "" {
|
||||||
userAgent = defaultUserAgent
|
userAgent = "Telegraf/" + internal.Version()
|
||||||
}
|
}
|
||||||
|
|
||||||
var headers = make(map[string]string, len(config.Headers)+1)
|
var headers = make(map[string]string, len(config.Headers)+1)
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
|
"github.com/influxdata/telegraf/internal"
|
||||||
"github.com/influxdata/telegraf/metric"
|
"github.com/influxdata/telegraf/metric"
|
||||||
"github.com/influxdata/telegraf/plugins/outputs/influxdb"
|
"github.com/influxdata/telegraf/plugins/outputs/influxdb"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -246,6 +247,8 @@ func TestHTTP_Write(t *testing.T) {
|
||||||
u, err := url.Parse(fmt.Sprintf("http://%s", ts.Listener.Addr().String()))
|
u, err := url.Parse(fmt.Sprintf("http://%s", ts.Listener.Addr().String()))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
internal.SetVersion("1.2.3")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
config *influxdb.HTTPConfig
|
config *influxdb.HTTPConfig
|
||||||
|
@ -295,6 +298,17 @@ func TestHTTP_Write(t *testing.T) {
|
||||||
w.WriteHeader(http.StatusNoContent)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "default user agent",
|
||||||
|
config: &influxdb.HTTPConfig{
|
||||||
|
URL: u,
|
||||||
|
Database: "telegraf",
|
||||||
|
},
|
||||||
|
queryHandlerFunc: func(t *testing.T, w http.ResponseWriter, r *http.Request) {
|
||||||
|
require.Equal(t, r.Header.Get("User-Agent"), "Telegraf/1.2.3")
|
||||||
|
w.WriteHeader(http.StatusNoContent)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "default database",
|
name: "default database",
|
||||||
config: &influxdb.HTTPConfig{
|
config: &influxdb.HTTPConfig{
|
||||||
|
|
|
@ -40,7 +40,6 @@ const (
|
||||||
defaultRequestTimeout = time.Second * 5
|
defaultRequestTimeout = time.Second * 5
|
||||||
defaultMaxWait = 10 // seconds
|
defaultMaxWait = 10 // seconds
|
||||||
defaultDatabase = "telegraf"
|
defaultDatabase = "telegraf"
|
||||||
defaultUserAgent = "telegraf"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type HTTPConfig struct {
|
type HTTPConfig struct {
|
||||||
|
@ -82,7 +81,7 @@ func NewHTTPClient(config *HTTPConfig) (*httpClient, error) {
|
||||||
|
|
||||||
userAgent := config.UserAgent
|
userAgent := config.UserAgent
|
||||||
if userAgent == "" {
|
if userAgent == "" {
|
||||||
userAgent = defaultUserAgent
|
userAgent = "Telegraf/" + internal.Version()
|
||||||
}
|
}
|
||||||
|
|
||||||
var headers = make(map[string]string, len(config.Headers)+2)
|
var headers = make(map[string]string, len(config.Headers)+2)
|
||||||
|
|
Loading…
Reference in New Issue