Revert "exec plugin: allow using glob pattern in command list"
This reverts commit 6381efa7ce
.
This commit is contained in:
parent
6381efa7ce
commit
46f4be88a6
|
@ -68,9 +68,6 @@ based on _prefix_ in addition to globs. This means that a filter like
|
||||||
- [#1107](https://github.com/influxdata/telegraf/issues/1107): Support lustre2 job stats. Thanks @hanleyja!
|
- [#1107](https://github.com/influxdata/telegraf/issues/1107): Support lustre2 job stats. Thanks @hanleyja!
|
||||||
- [#1122](https://github.com/influxdata/telegraf/pull/1122): Support setting config path through env variable and default paths.
|
- [#1122](https://github.com/influxdata/telegraf/pull/1122): Support setting config path through env variable and default paths.
|
||||||
- [#1128](https://github.com/influxdata/telegraf/pull/1128): MongoDB jumbo chunks metric for MongoDB input plugin
|
- [#1128](https://github.com/influxdata/telegraf/pull/1128): MongoDB jumbo chunks metric for MongoDB input plugin
|
||||||
- [#1110](https://github.com/influxdata/telegraf/pull/1110): Sanitize * to - in graphite serializer. Thanks @goodeggs!
|
|
||||||
- [#1118](https://github.com/influxdata/telegraf/pull/1118): Sanitize Counter names for `win_perf_counters` input.
|
|
||||||
- [#1127](https://github.com/influxdata/telegraf/pull/1127): Support for glob patterns in exec plugin commands configuration.
|
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
|
|
||||||
|
|
|
@ -6,32 +6,22 @@ Please also see: [Telegraf Input Data Formats](https://github.com/influxdata/tel
|
||||||
|
|
||||||
#### Configuration
|
#### Configuration
|
||||||
|
|
||||||
In this example a script called ```/tmp/test.sh```, a script called ```/tmp/test2.sh```, and
|
In this example a script called ```/tmp/test.sh``` and a script called ```/tmp/test2.sh```
|
||||||
all scripts matching glob pattern ```/tmp/collect_*.sh``` are configured for ```[[inputs.exec]]```
|
are configured for ```[[inputs.exec]]``` in JSON format.
|
||||||
in JSON format. Glob patterns are matched on every run, so adding new scripts that match the pattern
|
|
||||||
will cause them to be picked up immediately.
|
|
||||||
|
|
||||||
```
|
```
|
||||||
# Read flattened metrics from one or more commands that output JSON to stdout
|
# Read flattened metrics from one or more commands that output JSON to stdout
|
||||||
[[inputs.exec]]
|
[[inputs.exec]]
|
||||||
## Full path to executable with parameters,
|
# Shell/commands array
|
||||||
## or a glob pattern to run all matching files.
|
commands = ["/tmp/test.sh", "/tmp/test2.sh"]
|
||||||
## the glob pattern will be run at every interval, so new files will
|
|
||||||
## automatically be picked up.
|
|
||||||
commands = ["/tmp/test.sh", "/usr/bin/mycollector --foo=bar", "/tmp/collect_*.sh"]
|
|
||||||
|
|
||||||
## Timeout for each command to complete.
|
# Data format to consume.
|
||||||
timeout = "5s"
|
# NOTE json only reads numerical measurements, strings and booleans are ignored.
|
||||||
|
|
||||||
## measurement name suffix (for separating different commands)
|
|
||||||
name_suffix = "_mycollector"
|
|
||||||
|
|
||||||
## Data format to consume.
|
|
||||||
## Each data format has it's own unique set of configuration options, read
|
|
||||||
## more about them here:
|
|
||||||
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
|
|
||||||
data_format = "json"
|
data_format = "json"
|
||||||
|
|
||||||
|
# measurement name suffix (for separating different commands)
|
||||||
|
name_suffix = "_mycollector"
|
||||||
|
|
||||||
## Below configuration will be used for data_format = "graphite", can be ignored for other data_format
|
## Below configuration will be used for data_format = "graphite", can be ignored for other data_format
|
||||||
## If matching multiple measurement files, this string will be used to join the matched values.
|
## If matching multiple measurement files, this string will be used to join the matched values.
|
||||||
#separator = "."
|
#separator = "."
|
||||||
|
@ -190,3 +180,4 @@ sensu.metric.net.server0.eth0.rx_dropped 0 1444234982
|
||||||
The templates configuration will be used to parse the graphite metrics to support influxdb/opentsdb tagging store engines.
|
The templates configuration will be used to parse the graphite metrics to support influxdb/opentsdb tagging store engines.
|
||||||
|
|
||||||
More detail information about templates, please refer to [The graphite Input](https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md)
|
More detail information about templates, please refer to [The graphite Input](https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
@ -19,11 +18,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const sampleConfig = `
|
const sampleConfig = `
|
||||||
## Full path to executable with parameters,
|
## Commands array
|
||||||
## or a glob pattern to run all matching files.
|
commands = ["/tmp/test.sh", "/usr/bin/mycollector --foo=bar"]
|
||||||
## the glob pattern will be run at every interval, so new files will
|
|
||||||
## automatically be picked up.
|
|
||||||
commands = ["/tmp/test.sh", "/usr/bin/collector --foo=bar", "/tmp/collect_*.sh"]
|
|
||||||
|
|
||||||
## Timeout for each command to complete.
|
## Timeout for each command to complete.
|
||||||
timeout = "5s"
|
timeout = "5s"
|
||||||
|
@ -154,19 +150,10 @@ func (e *Exec) Gather(acc telegraf.Accumulator) error {
|
||||||
e.Command = ""
|
e.Command = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
commands := make([]string, len(e.Commands))
|
e.errChan = make(chan error, len(e.Commands))
|
||||||
for _, pattern := range e.Commands {
|
|
||||||
matches, err := filepath.Glob(pattern)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
commands = append(commands, matches...)
|
|
||||||
}
|
|
||||||
|
|
||||||
e.errChan = make(chan error, len(commands))
|
e.wg.Add(len(e.Commands))
|
||||||
|
for _, command := range e.Commands {
|
||||||
e.wg.Add(len(commands))
|
|
||||||
for _, command := range commands {
|
|
||||||
go e.ProcessCommand(command, acc)
|
go e.ProcessCommand(command, acc)
|
||||||
}
|
}
|
||||||
e.wg.Wait()
|
e.wg.Wait()
|
||||||
|
|
Loading…
Reference in New Issue