telegraf/plugins/inputs/processes
Daniel Nelson 10db774db3
Add prometheus round trip unit tests (#6720)
2019-11-26 17:31:36 -08:00
..
README.md Add support for parked process state on Linux (#6308) 2019-08-26 16:05:56 -07:00
processes.go Document and add support to input plugins for logging alias (#6357) 2019-09-23 15:39:50 -07:00
processes_test.go Add prometheus round trip unit tests (#6720) 2019-11-26 17:31:36 -08:00
processes_windows.go

README.md

Processes Input Plugin

This plugin gathers info about the total number of processes and groups them by status (zombie, sleeping, running, etc.)

On linux this plugin requires access to procfs (/proc), on other OSes it requires access to execute ps.

Configuration:

# Get the number of processes and group them by status
[[inputs.processes]]
  # no configuration

Another possible configuration is to define an alternative path for resolving the /proc location. Using the environment variable HOST_PROC the plugin will retrieve process information from the specified location.

docker run -v /proc:/rootfs/proc:ro -e HOST_PROC=/rootfs/proc

Measurements & Fields:

  • processes
    • blocked (aka disk sleep or uninterruptible sleep)
    • running
    • sleeping
    • stopped
    • total
    • zombie
    • dead
    • wait (freebsd only)
    • idle (bsd and Linux 4+ only)
    • paging (linux only)
    • parked (linux only)
    • total_threads (linux only)

Process State Mappings

Different OSes use slightly different State codes for their processes, these state codes are documented in man ps, and I will give a mapping of what major OS state codes correspond to in telegraf metrics:

Linux  FreeBSD  Darwin  meaning
  R       R       R     running
  S       S       S     sleeping
  Z       Z       Z     zombie
  X      none    none   dead
  T       T       T     stopped
  I       I       I     idle (sleeping for longer than about 20 seconds)
  D      D,L      U     blocked (waiting in uninterruptible sleep, or locked)
  W       W      none   paging (linux kernel < 2.6 only), wait (freebsd)

Tags:

None

Example Output:

$ telegraf --config ~/ws/telegraf.conf --input-filter processes --test
* Plugin: processes, Collection 1
> processes blocked=8i,running=1i,sleeping=265i,stopped=0i,total=274i,zombie=0i,dead=0i,paging=0i,total_threads=687i 1457478636980905042