telegraf/plugins/inputs/procstat
Sylvain Boily fba7735d96 Documentation privilege requirements for specific procstat metrics (#2787) 2017-05-25 13:06:27 -07:00
..
README.md Documentation privilege requirements for specific procstat metrics (#2787) 2017-05-25 13:06:27 -07:00
pgrep.go
process.go
procstat.go
procstat_test.go

README.md

Telegraf plugin: procstat

Description

The procstat plugin can be used to monitor system resource usage by an individual process using their /proc data.

Processes can be specified either by pid file, by executable name, by command line pattern matching, or by username (in this order or priority. Procstat plugin will use pgrep when executable name is provided to obtain the pid. Procstat 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.

The plugin will tag processes according to how they are specified in the configuration. If a pid file is used, a "pidfile" tag will be generated. On the other hand, if an executable is used an "exe" tag will be generated. Possible tag names:

  • pidfile
  • exe
  • pattern
  • user

Additionally the plugin will tag processes by their PID (pid_tag = true in the config) and their process name:

  • pid
  • process_name

Example:

[[inputs.procstat]]
  exe = "influxd"
  prefix = "influxd"

[[inputs.procstat]]
  pid_file = "/var/run/lxc/dnsmasq.pid"

The above configuration would result in output like:

> procstat,pidfile=/var/run/lxc/dnsmasq.pid,process_name=dnsmasq,pid=44979 cpu_user=0.14,cpu_system=0.07
> procstat,exe=influxd,process_name=influxd,pid=34337 influxd_cpu_user=25.43,influxd_cpu_system=21.82

Measurements

Note: prefix can be set by the user, per process.

Threads related measurement names:

  • procstat_[prefix_]num_threads value=5

File descriptor related measurement names (telegraf needs to run as root):

  • 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 (telegraf needs to run as root):

  • 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