Skip to content

Commit

Permalink
Added response_timeout property
Browse files Browse the repository at this point in the history
  • Loading branch information
puckpuck authored and Nick White committed Jan 31, 2017
1 parent 18d8625 commit 48e02a6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ in their config file.
- [#2001](https://github.com/influxdata/telegraf/pull/2001): MongoDB input plugin: Improve state data.
- [#2078](https://github.com/influxdata/telegraf/pull/2078): Ping input: add standard deviation field.
- [#2121](https://github.com/influxdata/telegraf/pull/2121): Add GC pause metric to InfluxDB input plugin.
- [#2006](https://github.com/influxdata/telegraf/pull/2006): Added response_timeout property to prometheus input plugin.

### Bugfixes

Expand Down
11 changes: 11 additions & 0 deletions plugins/inputs/prometheus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ Example for Kubernetes apiserver
urls = ["http://my-kube-apiserver:8080/metrics"]
```

Specify a 10 second timeout for slower/over-loaded clients
```toml
# Get all metrics from Kube-apiserver
[[inputs.prometheus]]
# An array of urls to scrape metrics from.
urls = ["http://my-kube-apiserver:8080/metrics"]

# Specify timeout duration for slower prometheus clients (default is 3s)
response_timeout = "10s"
```

You can use more complex configuration
to filter and some tags

Expand Down
9 changes: 7 additions & 2 deletions plugins/inputs/prometheus/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ type Prometheus struct {
// Bearer Token authorization file path
BearerToken string `toml:"bearer_token"`

ResponseTimeout internal.Duration `toml:"response_timeout"`

// Path to CA file
SSLCA string `toml:"ssl_ca"`
// Path to host cert file
Expand All @@ -38,6 +40,9 @@ var sampleConfig = `
## Use bearer token for authorization
# bearer_token = /path/to/bearer/token
## Specify timeout duration for slower prometheus clients (default is 3s)
# response_timeout = "3s"
## Optional SSL Config
# ssl_ca = /path/to/cafile
# ssl_cert = /path/to/certfile
Expand Down Expand Up @@ -105,7 +110,7 @@ func (p *Prometheus) gatherURL(url string, acc telegraf.Accumulator) error {
}).Dial,
TLSHandshakeTimeout: 5 * time.Second,
TLSClientConfig: tlsCfg,
ResponseHeaderTimeout: time.Duration(3 * time.Second),
ResponseHeaderTimeout: p.ResponseTimeout.Duration,
DisableKeepAlives: true,
}

Expand Down Expand Up @@ -148,6 +153,6 @@ func (p *Prometheus) gatherURL(url string, acc telegraf.Accumulator) error {

func init() {
inputs.Add("prometheus", func() telegraf.Input {
return &Prometheus{}
return &Prometheus{ResponseTimeout: "3s"}
})
}

0 comments on commit 48e02a6

Please sign in to comment.