sensu-plugins-cpu-checks 1.0.0 → 1.1.1

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: 62dd909eef356c0f7609fbd23605277d6a834c81
4
- data.tar.gz: 7e015eefbd51ce934b4362e6ea7a1bebd0b4c4e3
3
+ metadata.gz: 4a6b98e98d618673b465206bfeb594ed0e24fb5b
4
+ data.tar.gz: f6eb4d2c4e4b11dcd38736b52d5b764ee0da133e
5
5
  SHA512:
6
- metadata.gz: 0639f2733b45647230f0048554655b50d7dd6b32f1a8e807ce8c7f8c29f90314a25da3e889df7ea46f2caab7a2c6232bcd54996e29f0684c086a657fc2b4d81f
7
- data.tar.gz: e64ccaadf5d2e4491d215411954baa0f36c400a53f333df5dab2489b69adb23eaec3b5d46dc53b86d07fbe22df06e6207c2dda89481e6d5eb13b7ac488cd1236
6
+ metadata.gz: a88af95700227ee0ed627a1d472ea357a408139a4e51e854649a200f6bae397524ecf4cc7ce2b7b5d8ccfb4d5316a884695afb02cbf07f7279a3994798dac6c4
7
+ data.tar.gz: 19baa85d8e554a4b36ea5b335d2c9dd185ad6c897935d0ba1c3cd9159f6c00a54b8de06ee2aa39392710f6efc62439da009347141459716ad9b4e32026e30a2e
data/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
6
  ## [Unreleased]
7
+ ## [1.1.0] - 2017-05-02
8
+ ### Changed
9
+ - no real change just bumping due to deployment issue.
10
+
11
+ ## [1.1.0] - 2017-05-02
12
+ ### Added
13
+ - check-cpu.rb: added option to check less than (@santhosh-tekuri)
14
+ - check-cpu.rb: added option to use a cache file rather than sleeping to look at previous times (@axos88)
15
+
16
+ ### Fixed
17
+ - Set the correct type for --proc-path (@envintus)
18
+ - metrics-cpu.rb was missing a column (@michau)
7
19
 
8
20
  ## [1.0.0] - 2016-06-15
9
21
  ### Changed
@@ -40,7 +52,9 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
40
52
  - initial release
41
53
 
42
54
 
43
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/1.0.0...HEAD
55
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/1.1.1...HEAD
56
+ [1.1.1]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/1.1.0...1.1.0
57
+ [1.1.0]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/1.0.0...1.1.0
44
58
  [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/0.0.4...1.0.0
45
59
  [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/0.0.3...0.0.4
46
60
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-cpu-checks/compare/0.0.2...0.0.3
data/bin/check-cpu.rb CHANGED
@@ -26,6 +26,7 @@
26
26
  #
27
27
 
28
28
  require 'sensu-plugin/check/cli'
29
+ require 'json'
29
30
 
30
31
  #
31
32
  # Check CPU
@@ -33,6 +34,13 @@ require 'sensu-plugin/check/cli'
33
34
  class CheckCPU < Sensu::Plugin::Check::CLI
34
35
  CPU_METRICS = [:user, :nice, :system, :idle, :iowait, :irq, :softirq, :steal, :guest, :guest_nice].freeze
35
36
 
37
+ option :less_than,
38
+ description: 'Change whether value is less than check',
39
+ short: '-l',
40
+ long: '--less_than',
41
+ default: false,
42
+ boolean: true
43
+
36
44
  option :warn,
37
45
  short: '-w WARN',
38
46
  proc: proc(&:to_f),
@@ -48,9 +56,13 @@ class CheckCPU < Sensu::Plugin::Check::CLI
48
56
  proc: proc(&:to_f),
49
57
  default: 1
50
58
 
59
+ option :cache_file,
60
+ long: '--cache-file CACHEFILE',
61
+ default: nil
62
+
51
63
  option :proc_path,
52
64
  long: '--proc-path /proc',
53
- proc: proc(&:to_f),
65
+ proc: proc(&:to_s),
54
66
  default: '/proc'
55
67
 
56
68
  option :idle_metrics,
@@ -75,18 +87,47 @@ class CheckCPU < Sensu::Plugin::Check::CLI
75
87
  end
76
88
  end
77
89
 
90
+ def acquire_stats_with_sleeping(sec)
91
+ before = acquire_cpu_stats
92
+ sleep sec
93
+ after = acquire_cpu_stats
94
+
95
+ [before, after]
96
+ end
97
+
98
+ def acquire_stats_with_cache_file
99
+ before = JSON.parse(File.read(config[:cache_file]))
100
+ now = acquire_cpu_stats
101
+
102
+ [before, now]
103
+ end
104
+
105
+ def write_stats_to_cache_file(data)
106
+ File.write(config[:cache_file], data)
107
+ end
108
+
109
+ def acquire_stats(sec)
110
+ if config[:cache_file] && File.exist?(config[:cache_file])
111
+ (before, now) = acquire_stats_with_cache_file
112
+ else
113
+ (before, now) = acquire_stats_with_sleeping(sec)
114
+ end
115
+
116
+ write_stats_to_cache_file(now) if config[:cache_file]
117
+
118
+ [before, now]
119
+ end
120
+
78
121
  def run
79
- cpu_stats_before = acquire_cpu_stats
80
- sleep config[:sleep]
81
- cpu_stats_after = acquire_cpu_stats
122
+ (cpu_stats_before, cpu_stats_now) = acquire_stats(config[:sleep])
82
123
 
83
124
  # Some kernels don't have 'guest' and 'guest_nice' values
84
- metrics = CPU_METRICS.slice(0, cpu_stats_after.length)
125
+ metrics = CPU_METRICS.slice(0, cpu_stats_now.length)
85
126
 
86
127
  cpu_total_diff = 0.to_f
87
128
  cpu_stats_diff = []
88
129
  metrics.each_index do |i|
89
- cpu_stats_diff[i] = cpu_stats_after[i] - cpu_stats_before[i]
130
+ cpu_stats_diff[i] = cpu_stats_now[i] - cpu_stats_before[i]
90
131
  cpu_total_diff += cpu_stats_diff[i]
91
132
  end
92
133
 
@@ -113,8 +154,13 @@ class CheckCPU < Sensu::Plugin::Check::CLI
113
154
 
114
155
  message msg
115
156
 
116
- critical if checked_usage >= config[:crit]
117
- warning if checked_usage >= config[:warn]
157
+ if config[:less_than]
158
+ critical if checked_usage <= config[:crit]
159
+ warning if checked_usage <= config[:warn]
160
+ else
161
+ critical if checked_usage >= config[:crit]
162
+ warning if checked_usage >= config[:warn]
163
+ end
118
164
  ok
119
165
  end
120
166
  end
data/bin/metrics-cpu.rb CHANGED
@@ -42,7 +42,7 @@ class CpuGraphite < Sensu::Plugin::Metric::CLI::Graphite
42
42
  default: '/proc'
43
43
 
44
44
  def run
45
- cpu_metrics = %w(user nice system idle iowait irq softirq steal guest)
45
+ cpu_metrics = %w(user nice system idle iowait irq softirq steal guest guest_nice)
46
46
  other_metrics = %w(ctxt processes procs_running procs_blocked btime intr)
47
47
  cpu_count = 0
48
48
 
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsCpuChecks
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 0
5
- PATCH = 0
4
+ MINOR = 1
5
+ PATCH = 1
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-cpu-checks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
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: 2016-06-15 00:00:00.000000000 Z
11
+ date: 2017-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -217,9 +217,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
217
  version: '0'
218
218
  requirements: []
219
219
  rubyforge_project:
220
- rubygems_version: 2.5.1
220
+ rubygems_version: 2.4.5
221
221
  signing_key:
222
222
  specification_version: 4
223
223
  summary: Sensu plugins for cpu checks and metrics
224
224
  test_files: []
225
- has_rdoc: