parent
e424d47ce6
commit
6827459b9f
|
@ -1,10 +1,15 @@
|
|||
# Procstat plugin
|
||||
# Telegraf plugin: procstat
|
||||
|
||||
#### Description
|
||||
|
||||
The procstat plugin can be used to monitor system resource usage by an
|
||||
individual process.
|
||||
individual process using their /proc data.
|
||||
|
||||
Processes can be specified either by pid file or by executable name. Procstat
|
||||
plugin will use `pgrep` when executable name is provided to obtain the pid. Proctsta plugin will transmit IO, memory, cpu, file descriptor related measurements for every process specified. A prefix can be set to isolate individual process specific measurements.
|
||||
plugin will use `pgrep` when executable name is provided to obtain the pid.
|
||||
Proctsta plugin will transmit IO, memory, cpu, file descriptor related
|
||||
measurements for every process specified. A prefix can be set to isolate
|
||||
individual process specific measurements.
|
||||
|
||||
Example:
|
||||
|
||||
|
@ -19,3 +24,37 @@ Example:
|
|||
pid_file = "/var/run/lxc/dnsmasq.pid"
|
||||
prefix = "dnsmasq"
|
||||
```
|
||||
|
||||
# Measurements
|
||||
Note: prefix will set by the user, per process.
|
||||
|
||||
File descriptor related measurement names:
|
||||
- procstat_prefix_num_fds value=4
|
||||
|
||||
Context switch related measurement names:
|
||||
- procstat_prefix_voluntary_context_switches value=250
|
||||
- procstat_prefix_involuntary_context_switches value=0
|
||||
|
||||
I/O related measurement names:
|
||||
- procstat_prefix_read_count value=396
|
||||
- procstat_prefix_write_count value=1
|
||||
- procstat_prefix_read_bytes value=1019904
|
||||
- procstat_prefix_write_bytes value=1
|
||||
|
||||
CPU related measurement names:
|
||||
- procstat_prefix_cpu_user value=0
|
||||
- procstat_prefix_cpu_system value=0.01
|
||||
- procstat_prefix_cpu_idle value=0
|
||||
- procstat_prefix_cpu_nice value=0
|
||||
- procstat_prefix_cpu_iowait value=0
|
||||
- procstat_prefix_cpu_irq value=0
|
||||
- procstat_prefix_cpu_soft_irq value=0
|
||||
- procstat_prefix_cpu_soft_steal value=0
|
||||
- procstat_prefix_cpu_soft_stolen value=0
|
||||
- procstat_prefix_cpu_soft_guest value=0
|
||||
- procstat_prefix_cpu_soft_guest_nice value=0
|
||||
|
||||
Memory related measurement names:
|
||||
- procstat_prefix_memory_rss value=1777664
|
||||
- procstat_prefix_memory_vms value=24227840
|
||||
- procstat_prefix_memory_swap value=282624
|
||||
|
|
|
@ -2,13 +2,15 @@ package procstat
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/influxdb/telegraf/plugins"
|
||||
"github.com/shirou/gopsutil/process"
|
||||
"io/ioutil"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/shirou/gopsutil/process"
|
||||
|
||||
"github.com/influxdb/telegraf/plugins"
|
||||
)
|
||||
|
||||
type Specification struct {
|
||||
|
@ -26,12 +28,12 @@ func NewProcstat() *Procstat {
|
|||
}
|
||||
|
||||
var sampleConfig = `
|
||||
[[process.specifications]]
|
||||
# pid file
|
||||
pid_file = "/path/to/foo.pid"
|
||||
[[procstat.specifications]]
|
||||
prefix = "nginx" # required
|
||||
# Use one of pid_file or exe to find process
|
||||
pid_file = "/var/run/nginx.pid"
|
||||
# executable name (used by pgrep)
|
||||
exe = "/path/to/foo"
|
||||
name = "foo" # required
|
||||
# exe = "nginx"
|
||||
`
|
||||
|
||||
func (_ *Procstat) SampleConfig() string {
|
||||
|
@ -39,7 +41,7 @@ func (_ *Procstat) SampleConfig() string {
|
|||
}
|
||||
|
||||
func (_ *Procstat) Description() string {
|
||||
return "Monitor process cpu and memory usage"
|
||||
return "Monitor process cpu and memory usage"
|
||||
}
|
||||
|
||||
func (p *Procstat) Gather(acc plugins.Accumulator) error {
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
package procstat
|
||||
|
||||
import (
|
||||
"github.com/influxdb/telegraf/testutil"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdb/telegraf/testutil"
|
||||
)
|
||||
|
||||
func TestGather(t *testing.T) {
|
||||
|
|
|
@ -2,8 +2,10 @@ package procstat
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/influxdb/telegraf/plugins"
|
||||
|
||||
"github.com/shirou/gopsutil/process"
|
||||
|
||||
"github.com/influxdb/telegraf/plugins"
|
||||
)
|
||||
|
||||
type SpecProcessor struct {
|
||||
|
|
Loading…
Reference in New Issue