diff --git a/plugins/inputs/graylog/README.md b/plugins/inputs/graylog/README.md index 8f07147c6..7b6020461 100644 --- a/plugins/inputs/graylog/README.md +++ b/plugins/inputs/graylog/README.md @@ -30,6 +30,9 @@ Note: if namespace end point specified metrics array will be ignored for that ca "http://[graylog-server-ip]:12900/system/metrics/multiple", ] + ## Set timeout (default 5 seconds) + # timeout = "5s" + ## Metrics list ## List of metrics can be found on Graylog webservice documentation. ## Or by hitting the web service api at: diff --git a/plugins/inputs/graylog/graylog.go b/plugins/inputs/graylog/graylog.go index d522f5a49..4f34033d9 100644 --- a/plugins/inputs/graylog/graylog.go +++ b/plugins/inputs/graylog/graylog.go @@ -14,6 +14,7 @@ import ( "time" "github.com/influxdata/telegraf" + "github.com/influxdata/telegraf/config" "github.com/influxdata/telegraf/plugins/common/tls" "github.com/influxdata/telegraf/plugins/inputs" ) @@ -34,6 +35,7 @@ type GrayLog struct { Metrics []string Username string Password string + Timeout config.Duration tls.ClientConfig client HTTPClient @@ -89,6 +91,9 @@ var sampleConfig = ` "http://[graylog-server-ip]:12900/system/metrics/multiple", ] + ## Set timeout (default 5 seconds) + # timeout = "5s" + ## Metrics list ## List of metrics can be found on Graylog webservice documentation. ## Or by hitting the the web service api at: @@ -128,12 +133,12 @@ func (h *GrayLog) Gather(acc telegraf.Accumulator) error { return err } tr := &http.Transport{ - ResponseHeaderTimeout: 3 * time.Second, + ResponseHeaderTimeout: time.Duration(h.Timeout), TLSClientConfig: tlsCfg, } client := &http.Client{ Transport: tr, - Timeout: 4 * time.Second, + Timeout: time.Duration(h.Timeout), } h.client.SetHTTPClient(client) } @@ -285,7 +290,8 @@ func (h *GrayLog) sendRequest(serverURL string) (string, float64, error) { func init() { inputs.Add("graylog", func() telegraf.Input { return &GrayLog{ - client: &RealHTTPClient{}, + client: &RealHTTPClient{}, + Timeout: config.Duration(5 * time.Second), } }) }