parent
1459fab4d6
commit
7d198f0a68
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
- [#2773](https://github.com/influxdata/telegraf/pull/2773): Add support for self-signed certs to InfluxDB input plugin
|
- [#2773](https://github.com/influxdata/telegraf/pull/2773): Add support for self-signed certs to InfluxDB input plugin
|
||||||
- [#2581](https://github.com/influxdata/telegraf/pull/2581): Add Docker container environment variables as tags. Only whitelisted
|
- [#2581](https://github.com/influxdata/telegraf/pull/2581): Add Docker container environment variables as tags. Only whitelisted
|
||||||
|
- [#2817](https://github.com/influxdata/telegraf/pull/2817): Added timeout option to IPMI sensor plugin
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,13 @@ The `server` tag will be made available when retrieving stats from remote server
|
||||||
## if no servers are specified, local machine sensor stats will be queried
|
## if no servers are specified, local machine sensor stats will be queried
|
||||||
##
|
##
|
||||||
# servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]
|
# servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]
|
||||||
|
|
||||||
|
## Recomended: use metric 'interval' that is a multiple of 'timeout' to avoid
|
||||||
|
## gaps or overlap in pulled data
|
||||||
|
interval = "30s"
|
||||||
|
|
||||||
|
## Timeout for the ipmitool command to complete. Default is 20 seconds.
|
||||||
|
timeout = "20s"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
|
@ -19,6 +19,7 @@ var (
|
||||||
type Ipmi struct {
|
type Ipmi struct {
|
||||||
Path string
|
Path string
|
||||||
Servers []string
|
Servers []string
|
||||||
|
Timeout internal.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
var sampleConfig = `
|
var sampleConfig = `
|
||||||
|
@ -33,6 +34,13 @@ var sampleConfig = `
|
||||||
## if no servers are specified, local machine sensor stats will be queried
|
## if no servers are specified, local machine sensor stats will be queried
|
||||||
##
|
##
|
||||||
# servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]
|
# servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]
|
||||||
|
|
||||||
|
## Recomended: use metric 'interval' that is a multiple of 'timeout' to avoid
|
||||||
|
## gaps or overlap in pulled data
|
||||||
|
interval = "30s"
|
||||||
|
|
||||||
|
## Timeout for the ipmitool command to complete
|
||||||
|
timeout = "20s"
|
||||||
`
|
`
|
||||||
|
|
||||||
func (m *Ipmi) SampleConfig() string {
|
func (m *Ipmi) SampleConfig() string {
|
||||||
|
@ -78,7 +86,7 @@ func (m *Ipmi) parse(acc telegraf.Accumulator, server string) error {
|
||||||
|
|
||||||
opts = append(opts, "sdr")
|
opts = append(opts, "sdr")
|
||||||
cmd := execCommand(m.Path, opts...)
|
cmd := execCommand(m.Path, opts...)
|
||||||
out, err := internal.CombinedOutputTimeout(cmd, time.Second*5)
|
out, err := internal.CombinedOutputTimeout(cmd, m.Timeout.Duration)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to run command %s: %s - %s", strings.Join(cmd.Args, " "), err, string(out))
|
return fmt.Errorf("failed to run command %s: %s - %s", strings.Join(cmd.Args, " "), err, string(out))
|
||||||
}
|
}
|
||||||
|
@ -152,6 +160,7 @@ func init() {
|
||||||
if len(path) > 0 {
|
if len(path) > 0 {
|
||||||
m.Path = path
|
m.Path = path
|
||||||
}
|
}
|
||||||
|
m.Timeout = internal.Duration{Duration: time.Second * 20}
|
||||||
inputs.Add("ipmi_sensor", func() telegraf.Input {
|
inputs.Add("ipmi_sensor", func() telegraf.Input {
|
||||||
m := m
|
m := m
|
||||||
return &m
|
return &m
|
||||||
|
|
|
@ -5,7 +5,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/influxdata/telegraf/internal"
|
||||||
"github.com/influxdata/telegraf/testutil"
|
"github.com/influxdata/telegraf/testutil"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
@ -15,6 +17,7 @@ func TestGather(t *testing.T) {
|
||||||
i := &Ipmi{
|
i := &Ipmi{
|
||||||
Servers: []string{"USERID:PASSW0RD@lan(192.168.1.1)"},
|
Servers: []string{"USERID:PASSW0RD@lan(192.168.1.1)"},
|
||||||
Path: "ipmitool",
|
Path: "ipmitool",
|
||||||
|
Timeout: internal.Duration{Duration: time.Second * 5},
|
||||||
}
|
}
|
||||||
// overwriting exec commands with mock commands
|
// overwriting exec commands with mock commands
|
||||||
execCommand = fakeExecCommand
|
execCommand = fakeExecCommand
|
||||||
|
@ -119,6 +122,7 @@ func TestGather(t *testing.T) {
|
||||||
|
|
||||||
i = &Ipmi{
|
i = &Ipmi{
|
||||||
Path: "ipmitool",
|
Path: "ipmitool",
|
||||||
|
Timeout: internal.Duration{Duration: time.Second * 5},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = acc.GatherError(i.Gather)
|
err = acc.GatherError(i.Gather)
|
||||||
|
|
Loading…
Reference in New Issue