Skip to content
Snippets Groups Projects
Commit 13f314a5 authored by jeremydenoun's avatar jeremydenoun Committed by Daniel Nelson
Browse files

Report DEAD (X) State Process (#2501)

Report count of processes in dead (X) process state from the processes input.  This process state is only valid on Linux.
parent ea6e0b82
No related branches found
No related tags found
No related merge requests found
...@@ -56,6 +56,7 @@ be deprecated eventually. ...@@ -56,6 +56,7 @@ be deprecated eventually.
- [#2339](https://github.com/influxdata/telegraf/pull/2339): Increment gather_errors for all errors emitted by inputs. - [#2339](https://github.com/influxdata/telegraf/pull/2339): Increment gather_errors for all errors emitted by inputs.
- [#2071](https://github.com/influxdata/telegraf/issues/2071): Use official docker SDK. - [#2071](https://github.com/influxdata/telegraf/issues/2071): Use official docker SDK.
- [#1678](https://github.com/influxdata/telegraf/pull/1678): Add AMQP consumer input plugin - [#1678](https://github.com/influxdata/telegraf/pull/1678): Add AMQP consumer input plugin
- [#2501](https://github.com/influxdata/telegraf/pull/2501): Support DEAD(X) state in system input plugin.
### Bugfixes ### Bugfixes
......
...@@ -23,6 +23,7 @@ it requires access to execute `ps`. ...@@ -23,6 +23,7 @@ it requires access to execute `ps`.
- stopped - stopped
- total - total
- zombie - zombie
- dead
- wait (freebsd only) - wait (freebsd only)
- idle (bsd only) - idle (bsd only)
- paging (linux only) - paging (linux only)
...@@ -39,6 +40,7 @@ Linux FreeBSD Darwin meaning ...@@ -39,6 +40,7 @@ Linux FreeBSD Darwin meaning
R R R running R R R running
S S S sleeping S S S sleeping
Z Z Z zombie Z Z Z zombie
X none none dead
T T T stopped T T T stopped
none I I idle (sleeping for longer than about 20 seconds) none I I idle (sleeping for longer than about 20 seconds)
D D,L U blocked (waiting in uninterruptible sleep, or locked) D D,L U blocked (waiting in uninterruptible sleep, or locked)
...@@ -54,5 +56,5 @@ None ...@@ -54,5 +56,5 @@ None
``` ```
$ telegraf -config ~/ws/telegraf.conf -input-filter processes -test $ telegraf -config ~/ws/telegraf.conf -input-filter processes -test
* Plugin: processes, Collection 1 * Plugin: processes, Collection 1
> processes blocked=8i,running=1i,sleeping=265i,stopped=0i,total=274i,zombie=0i,paging=0i,total_threads=687i 1457478636980905042 > processes blocked=8i,running=1i,sleeping=265i,stopped=0i,total=274i,zombie=0i,dead=0i,paging=0i,total_threads=687i 1457478636980905042
``` ```
...@@ -81,6 +81,7 @@ func getEmptyFields() map[string]interface{} { ...@@ -81,6 +81,7 @@ func getEmptyFields() map[string]interface{} {
case "openbsd": case "openbsd":
fields["idle"] = int64(0) fields["idle"] = int64(0)
case "linux": case "linux":
fields["dead"] = int64(0)
fields["paging"] = int64(0) fields["paging"] = int64(0)
fields["total_threads"] = int64(0) fields["total_threads"] = int64(0)
} }
...@@ -107,6 +108,8 @@ func (p *Processes) gatherFromPS(fields map[string]interface{}) error { ...@@ -107,6 +108,8 @@ func (p *Processes) gatherFromPS(fields map[string]interface{}) error {
fields["blocked"] = fields["blocked"].(int64) + int64(1) fields["blocked"] = fields["blocked"].(int64) + int64(1)
case 'Z': case 'Z':
fields["zombies"] = fields["zombies"].(int64) + int64(1) fields["zombies"] = fields["zombies"].(int64) + int64(1)
case 'X':
fields["dead"] = fields["dead"].(int64) + int64(1)
case 'T': case 'T':
fields["stopped"] = fields["stopped"].(int64) + int64(1) fields["stopped"] = fields["stopped"].(int64) + int64(1)
case 'R': case 'R':
...@@ -164,6 +167,8 @@ func (p *Processes) gatherFromProc(fields map[string]interface{}) error { ...@@ -164,6 +167,8 @@ func (p *Processes) gatherFromProc(fields map[string]interface{}) error {
fields["blocked"] = fields["blocked"].(int64) + int64(1) fields["blocked"] = fields["blocked"].(int64) + int64(1)
case 'Z': case 'Z':
fields["zombies"] = fields["zombies"].(int64) + int64(1) fields["zombies"] = fields["zombies"].(int64) + int64(1)
case 'X':
fields["dead"] = fields["dead"].(int64) + int64(1)
case 'T', 't': case 'T', 't':
fields["stopped"] = fields["stopped"].(int64) + int64(1) fields["stopped"] = fields["stopped"].(int64) + int64(1)
case 'W': case 'W':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment