Add write timeout to Riemann output (#2576)
This commit is contained in:
@@ -34,6 +34,9 @@ This plugin writes to [Riemann](http://riemann.io/) via TCP or UDP.
|
||||
|
||||
## Description for Riemann event
|
||||
# description_text = "metrics collected from telegraf"
|
||||
|
||||
## Riemann client write timeout, defaults to "5s" if not set.
|
||||
# timeout = "5s"
|
||||
```
|
||||
|
||||
### Required parameters:
|
||||
|
||||
@@ -7,9 +7,11 @@ import (
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/amir/raidman"
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/internal"
|
||||
"github.com/influxdata/telegraf/plugins/outputs"
|
||||
)
|
||||
|
||||
@@ -22,6 +24,7 @@ type Riemann struct {
|
||||
TagKeys []string
|
||||
Tags []string
|
||||
DescriptionText string
|
||||
Timeout internal.Duration
|
||||
|
||||
client *raidman.Client
|
||||
}
|
||||
@@ -54,6 +57,9 @@ var sampleConfig = `
|
||||
|
||||
## Description for Riemann event
|
||||
# description_text = "metrics collected from telegraf"
|
||||
|
||||
## Riemann client write timeout, defaults to "5s" if not set.
|
||||
# timeout = "5s"
|
||||
`
|
||||
|
||||
func (r *Riemann) Connect() error {
|
||||
@@ -62,7 +68,7 @@ func (r *Riemann) Connect() error {
|
||||
return err
|
||||
}
|
||||
|
||||
client, err := raidman.Dial(parsed_url.Scheme, parsed_url.Host)
|
||||
client, err := raidman.DialWithTimeout(parsed_url.Scheme, parsed_url.Host, r.Timeout.Duration)
|
||||
if err != nil {
|
||||
r.client = nil
|
||||
return err
|
||||
@@ -212,6 +218,8 @@ func (r *Riemann) tags(tags map[string]string) []string {
|
||||
|
||||
func init() {
|
||||
outputs.Add("riemann", func() telegraf.Output {
|
||||
return &Riemann{}
|
||||
return &Riemann{
|
||||
Timeout: internal.Duration{Duration: time.Second * 5},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user