sensu-plugins-process-checks 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1aab223267b895dbbbce38685a4928b1801d03a8
4
- data.tar.gz: 7a45deb3970294cc3f8acaff0c74d8ccda4f9743
3
+ metadata.gz: e4c1e16b051ae71d9479b95387e22c504ab7a7f0
4
+ data.tar.gz: 43d7d36c527666e51220a43a05c26793ea420397
5
5
  SHA512:
6
- metadata.gz: c9aeaa218f5a55fd0d6aaee1560af7b68d444dbbc0af440f00a55f77afd2a0beed3d0f87368196b71119d98c6ed1be76aadc4f81a730ac50240dfc2ca65278dc
7
- data.tar.gz: 9ae11bfe35a884d635ed38973469b4e3d7a22f7b0277be5fa0c436a5622b0cb6627fc96d02bc9e90a737845698f1dbf04b0ea5d040fdef22dbe0b6fe5609a821
6
+ metadata.gz: 4d4cca0b109f96d84089aa5855841a9bc50e8214949c883092850c16d43ada5af4912ec5da7f7cac1915ee81fe2c9e34e46e9731f0b379d5f61c6836ed621829
7
+ data.tar.gz: 512a08cd43764730059955e144f7dd3772ae9944b517a7bc5ac969ad5b07be2d6b7a8e136a73ff8693436b6e442638a34a17c758209cff2c1dd62be80164b791
data/CHANGELOG.md CHANGED
@@ -1,9 +1,23 @@
1
- #Change Log
1
+ # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
+
6
7
  ## [Unreleased]
8
+
9
+ ## [2.4.0] - 2017-07-18
10
+ ### Added
11
+ - ruby 2.4 testing (@majormoses)
12
+ - metric-processes-threads-count.rb: count processes by status (for Linux machines only) (@alcasim)
13
+
14
+ ### Changed
15
+ - PR template fixes (@majormoses)
16
+
17
+ ### Fixed
18
+ - misc changelog fixup (@majormoses)
19
+ - fixed `rake check_binstubs` by requiging `English`
20
+
7
21
  ## [2.3.0] - 2017-05-29
8
22
  ### Changed
9
23
  - metrics-per-process.py: Use memory_info() in psutil versions greater than 4.0.0, as memory_info_ex() was deprecated.
@@ -40,6 +54,9 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
40
54
  - Updated Rubocop to 0.40, applied auto-correct
41
55
  - Remove Ruby 1.9.3 support; add Ruby 2.3.0 support to test matrix
42
56
 
57
+ ## [0.1.0] - 2015-08-11
58
+ ### Added
59
+ - Add metrics-per-process.py plugin (require python psutil module)
43
60
 
44
61
  ## [0.0.6] - 2015-08-24
45
62
  ### Fixed
@@ -52,15 +69,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
52
69
  ### Changed
53
70
  - rename process-uptime metrics.sh -> metrics-process-uptime.sh
54
71
 
55
- ## [0.1.0] - 2015-08-11
56
- ### Added
57
- - Add metrics-per-process.py plugin (require python psutil module)
58
-
59
72
  ## [0.0.4] - 2015-07-14
60
73
  ### Changed
61
74
  - updated sensu-plugin gem to 1.2.0
62
75
 
63
- ## [0.0.3] - [2015-07-13]
76
+ ## [0.0.3] - 2015-07-13
64
77
  ### Fixed
65
78
  - issue #9: variable type conversion to_i in check-process-restart
66
79
 
@@ -77,7 +90,7 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
77
90
  ### Changed
78
91
  - removed cruft from /lib
79
92
 
80
- ## 0.0.1 - [2015-05-01]
93
+ ## [0.0.1] - 2015-05-01
81
94
  ### Added
82
95
  - initial stable release
83
96
 
@@ -126,7 +139,8 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
126
139
  - built against 1.9.3, 2.0, 2.1
127
140
  - cryptographically signed
128
141
 
129
- [unreleased]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.3.0...HEAD
142
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.3.0...HEAD
143
+ [2.4.0]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.3.0...
130
144
  [2.3.0]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.2.0...2.3.0
131
145
  [2.2.0]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.1.0...2.2.0
132
146
  [2.1.0]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/2.0.0...2.1.0
@@ -137,3 +151,4 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
137
151
  [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/0.0.3...0.0.4
138
152
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/0.0.2...0.0.3
139
153
  [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/0.0.1...0.0.2
154
+ [0.0.1]: https://github.com/sensu-plugins/sensu-plugins-process-checks/compare/4fd88a85f31d52c0f7145807365c911ea7f935c1...0.0.1
@@ -51,6 +51,13 @@ class ProcessesThreadsCount < Sensu::Plugin::Metric::CLI::Graphite
51
51
  boolean: true,
52
52
  default: false
53
53
 
54
+ option :statuses,
55
+ description: 'If specified, count each process number by status in addition to processes. Note: Requires sys-proctables > 0.9.5',
56
+ short: '-S',
57
+ long: '--statuses',
58
+ boolean: true,
59
+ default: false
60
+
54
61
  PROCTABLE_MSG = 'sys-proctable version newer than 0.9.5 is required for counting threads with -t or --threads'.freeze
55
62
 
56
63
  # Exit with an unknown if sys-proctable is not high enough to support counting threads.
@@ -86,9 +93,26 @@ class ProcessesThreadsCount < Sensu::Plugin::Metric::CLI::Graphite
86
93
  end
87
94
  end
88
95
 
96
+ # Takes a process struct from Sys::ProcTable.ps() as an argument
97
+ # Initialises a list of different Linux process statuses
98
+ # Tries to use the Linux proccess status :state field, returns the initializedl list if it fails
99
+ # Counts the processes by status and returns the hash
100
+ def count_processes_by_status(ps_table)
101
+ list_proc = {}
102
+ %w(S R D T t X Z).each do |v|
103
+ list_proc[v] = 0
104
+ end
105
+ if ps_table.first.respond_to?(:state)
106
+ ps_table.each do |pr|
107
+ list_proc[pr[:state]] += 1
108
+ end
109
+ end
110
+ list_proc
111
+ end
112
+
89
113
  # Main function
90
114
  def run
91
- if config[:threads]
115
+ if config[:threads] || config[:statuses]
92
116
  unknown PROCTABLE_MSG unless check_proctable_version
93
117
  end
94
118
  ps_table = Sys::ProcTable.ps
@@ -100,6 +124,26 @@ class ProcessesThreadsCount < Sensu::Plugin::Metric::CLI::Graphite
100
124
  if config[:threads]
101
125
  output "#{[config[:scheme], 'thread_count'].join('.')} #{threads} #{timestamp}"
102
126
  end
127
+ if config[:statuses]
128
+ count_processes_by_status(ps_table).each do |type, proc_count|
129
+ case type
130
+ when 'S'
131
+ output "#{[config[:scheme], 'sleeping'].join('.')} #{proc_count} #{timestamp}"
132
+ when 'R'
133
+ output "#{[config[:scheme], 'running'].join('.')} #{proc_count} #{timestamp}"
134
+ when 'D'
135
+ output "#{[config[:scheme], 'ininterruptible_sleep'].join('.')} #{proc_count} #{timestamp}"
136
+ when 'T'
137
+ output "#{[config[:scheme], 'stopped'].join('.')} #{proc_count} #{timestamp}"
138
+ when 't'
139
+ output "#{[config[:scheme], 'stopped_by_debugger'].join('.')} #{proc_count} #{timestamp}"
140
+ when 'X'
141
+ output "#{[config[:scheme], 'dead'].join('.')} #{proc_count} #{timestamp}"
142
+ when 'Z'
143
+ output "#{[config[:scheme], 'zombie'].join('.')} #{proc_count} #{timestamp}"
144
+ end
145
+ end
146
+ end
103
147
  ok
104
148
  end
105
149
  end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsProcessChecks
2
2
  module Version
3
3
  MAJOR = 2
4
- MINOR = 3
4
+ MINOR = 4
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-process-checks
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-29 00:00:00.000000000 Z
11
+ date: 2017-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: english