Compare commits
4 Commits
master
...
kb-procsta
Author | SHA1 | Date |
---|---|---|
root | f2eea71c1f | |
Kostas Botsas | da9b719889 | |
root | 07f57710df | |
root | dc84cce95c |
|
@ -25,6 +25,7 @@
|
||||||
- [#1729](https://github.com/influxdata/telegraf/issues/1729): Add support to SNMP for OID index suffixes.
|
- [#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.
|
- [#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.
|
- [#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.
|
- [#1838](https://github.com/influxdata/telegraf/pull/1838): Logging overhaul to centralize the logger & log levels, & provide a logfile config option.
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
|
|
|
@ -1356,6 +1356,8 @@
|
||||||
# # exe = "nginx"
|
# # exe = "nginx"
|
||||||
# ## pattern as argument for pgrep (ie, pgrep -f <pattern>)
|
# ## pattern as argument for pgrep (ie, pgrep -f <pattern>)
|
||||||
# # pattern = "nginx"
|
# # 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 as argument for pgrep (ie, pgrep -u <user>)
|
||||||
# # user = "nginx"
|
# # user = "nginx"
|
||||||
#
|
#
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
|
|
||||||
type Procstat struct {
|
type Procstat struct {
|
||||||
PidFile string `toml:"pid_file"`
|
PidFile string `toml:"pid_file"`
|
||||||
|
Exact bool
|
||||||
Exe string
|
Exe string
|
||||||
Pattern string
|
Pattern string
|
||||||
Prefix string
|
Prefix string
|
||||||
|
@ -43,6 +44,8 @@ var sampleConfig = `
|
||||||
# exe = "nginx"
|
# exe = "nginx"
|
||||||
## pattern as argument for pgrep (ie, pgrep -f <pattern>)
|
## pattern as argument for pgrep (ie, pgrep -f <pattern>)
|
||||||
# pattern = "nginx"
|
# 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 as argument for pgrep (ie, pgrep -u <user>)
|
||||||
# user = "nginx"
|
# user = "nginx"
|
||||||
|
|
||||||
|
@ -176,11 +179,17 @@ func (p *Procstat) pidsFromExe() ([]int32, error) {
|
||||||
func (p *Procstat) pidsFromPattern() ([]int32, error) {
|
func (p *Procstat) pidsFromPattern() ([]int32, error) {
|
||||||
var out []int32
|
var out []int32
|
||||||
var outerr error
|
var outerr error
|
||||||
|
var options string
|
||||||
bin, err := exec.LookPath("pgrep")
|
bin, err := exec.LookPath("pgrep")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, fmt.Errorf("Couldn't find pgrep binary: %s", err)
|
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 {
|
if err != nil {
|
||||||
return out, fmt.Errorf("Failed to execute %s. Error: '%s'", bin, err)
|
return out, fmt.Errorf("Failed to execute %s. Error: '%s'", bin, err)
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue