Compare commits

...

4 Commits

Author SHA1 Message Date
root f2eea71c1f Merge branch 'master' into kb-procstat-x 2016-10-04 15:23:15 +03:00
Kostas Botsas da9b719889 update changelog.md 2016-10-03 19:20:16 +03:00
root 07f57710df code formatting 2016-10-03 18:31:25 +03:00
root dc84cce95c added -x option for pgrep in procstat 2016-09-30 18:48:17 +03:00
3 changed files with 13 additions and 1 deletions

View File

@ -25,6 +25,7 @@
- [#1729](https://github.com/influxdata/telegraf/issues/1729): Add support to SNMP for OID index suffixes.
- [#1813](https://github.com/influxdata/telegraf/pull/1813): Change default arguments for SNMP plugin.
- [#1686](https://github.com/influxdata/telegraf/pull/1686): Mesos input plugin: very high-cardinality mesos-task metrics removed.
- [#1839](https://github.com/influxdata/telegraf/pull/1839): Exact match with pgrep -x option in procstat
- [#1838](https://github.com/influxdata/telegraf/pull/1838): Logging overhaul to centralize the logger & log levels, & provide a logfile config option.
### Bugfixes

View File

@ -1356,6 +1356,8 @@
# # exe = "nginx"
# ## pattern as argument for pgrep (ie, pgrep -f <pattern>)
# # pattern = "nginx"
# ## match the exact name of the process (ie, pgrep -xf <pattern>)
# # exact = false
# ## user as argument for pgrep (ie, pgrep -u <user>)
# # user = "nginx"
#

View File

@ -16,6 +16,7 @@ import (
type Procstat struct {
PidFile string `toml:"pid_file"`
Exact bool
Exe string
Pattern string
Prefix string
@ -43,6 +44,8 @@ var sampleConfig = `
# exe = "nginx"
## pattern as argument for pgrep (ie, pgrep -f <pattern>)
# pattern = "nginx"
## match the exact name of the process (ie, pgrep -xf <pattern>)
# exact = false
## user as argument for pgrep (ie, pgrep -u <user>)
# user = "nginx"
@ -176,11 +179,17 @@ func (p *Procstat) pidsFromExe() ([]int32, error) {
func (p *Procstat) pidsFromPattern() ([]int32, error) {
var out []int32
var outerr error
var options string
bin, err := exec.LookPath("pgrep")
if err != nil {
return out, fmt.Errorf("Couldn't find pgrep binary: %s", err)
}
pgrep, err := exec.Command(bin, "-f", p.Pattern).Output()
if p.Exact == true {
options = "-xf"
} else {
options = "-f"
}
pgrep, err := exec.Command(bin, options, p.Pattern).Output()
if err != nil {
return out, fmt.Errorf("Failed to execute %s. Error: '%s'", bin, err)
} else {