sensu-plugins-memory-checks 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 16fadb9f270e21852cda6c7aa1910cb2c635cf2d
4
- data.tar.gz: 5953e5e1e94f2cc8136275f376a11c977408770e
3
+ metadata.gz: 7a1d5d0e1938f571decbc1ce64c880e8df3c9dd8
4
+ data.tar.gz: 80aa1e740198b518102d025d3a567fdee778e3d9
5
5
  SHA512:
6
- metadata.gz: f2d7e865052c131db2d14a84446b8200ade62ad0e211bf3599e25fab1225446acf92c898076966dc2cc28e02f162acf96c6a4c0ac91305fb7797af5e42641759
7
- data.tar.gz: 0e475773accf30edaa648dd04c04b69e1998dbfc505fcfd4917d6aa833e31b7d6c84e31943f941e27275f5235bdf20256f18f659735bf83e66e59ac899642b03
6
+ metadata.gz: b74df367aa33f827d401f82442560ef15788dee873a12a54623f8bdcc5ca90a9a1934196c868997630b98201da7932f0a4ee1a977396ceaa21a0aaf94485f5a4
7
+ data.tar.gz: 4303b07011fa7bbf82862c02617b4ad13342f37c63383801f464c8f7841a70e17cb88a374d1d986bc4da29f0854f740e0362346a0d319b0529dcd8714d164a43
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -3,9 +3,21 @@ 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
- ## Unreleased
6
+ ## [Unreleased][unreleased]
7
7
 
8
- ## [0.0.4] - 2015-07-14
8
+ ## [0.0.7] - 2015-08-11
9
+ ### Fixed
10
+ - check-memory.sh, system may not have /etc/redhat-version
11
+
12
+ ### Changed
13
+ - bump rubocop
14
+
15
+ ## [0.0.6] - 2015-07-30
16
+ - replaced `free` with vmstat gem to add more nix compatibility
17
+ - added option free (default to keep old default behavior)
18
+ - added option used to change check to checked used instead of memory free
19
+
20
+ ## [0.0.5] - 2015-07-14
9
21
  ### Fixed
10
22
  - fixed bad script filenames that prevented the checks for executing
11
23
 
@@ -33,3 +45,10 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
33
45
  ### Added
34
46
  - initial release
35
47
 
48
+ [unreleased]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.7...HEAD
49
+ [0.0.7]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.6...0.0.7
50
+ [0.0.5]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.5...0.0.6
51
+ [0.0.5]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.4...0.0.5
52
+ [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.3...0.0.4
53
+ [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.2...0.0.3
54
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-memory-checks/compare/0.0.1...0.0.2
data/bin/check-memory.sh CHANGED
@@ -41,7 +41,18 @@ fi
41
41
  WARN=${WARN:=0}
42
42
  CRIT=${CRIT:=0}
43
43
 
44
- if [ -f /etc/redhat-release ] && [ `awk '{print $3}' /etc/redhat-release` = "21" ]; then
44
+ # validate fedora > 20 and rhel > 7.0 and centos > 7.0
45
+ if [[ -f /etc/redhat-version && `awk '{print $3}' /etc/redhat-release` =~ ^2[0-9]{1} ]]; then
46
+ redhat_version=1
47
+ elif [[ -f /etc/redhat-version && `awk '{print $7}' /etc/redhat-version` =~ ^7\.[0-9]{1} ]]; then
48
+ redhat_version=1
49
+ elif [[ -f /etc/redhat-release && `awk '{print $4}' /etc/redhat-release` =~ ^7\.[0-9]{1} ]]; then
50
+ redhat_version=1
51
+ else
52
+ redhat_version=0
53
+ fi
54
+
55
+ if [ -f /etc/redhat-release ] && [ $redhat_version = '1' ] ; then
45
56
  FREE_MEMORY=`free -m | grep Mem | awk '{ print $7 }'`
46
57
  else
47
58
  FREE_MEMORY=`free -m | grep buffers/cache | awk '{ print $4 }'`
data/bin/check-ram.rb CHANGED
@@ -13,10 +13,15 @@
13
13
  #
14
14
  # DEPENDENCIES:
15
15
  # gem: sensu-plugin
16
+ # gem: vmstat
16
17
  #
17
18
  # USAGE:
19
+ # check-ram.rb --help
18
20
  #
19
21
  # NOTES:
22
+ # The default behavior is to check % of RAM free. This can easily
23
+ # be overwritten via args please see `check-ram.rb --help` for details
24
+ # on each option.
20
25
  #
21
26
  # LICENSE:
22
27
  # Copyright 2012 Sonian, Inc <chefs@sonian.net>
@@ -24,12 +29,27 @@
24
29
  # for details.
25
30
  #
26
31
  require 'sensu-plugin/check/cli'
32
+ require 'vmstat'
27
33
 
28
34
  class CheckRAM < Sensu::Plugin::Check::CLI
29
35
  option :megabytes,
30
36
  short: '-m',
31
37
  long: '--megabytes',
32
- description: 'Unless --megabytes is specified the thresholds are in percents',
38
+ description: 'Unless --megabytes is specified the thresholds are in percentage of memory used as opposed to MB of ram left',
39
+ boolean: true,
40
+ default: false
41
+
42
+ option :free,
43
+ short: '-f',
44
+ long: '--free',
45
+ description: 'checks free threshold, defaults to true',
46
+ boolean: true,
47
+ default: true
48
+
49
+ option :used,
50
+ short: '-u',
51
+ long: '--used',
52
+ description: 'checks used threshold, defaults to false',
33
53
  boolean: true,
34
54
  default: false
35
55
 
@@ -44,29 +64,52 @@ class CheckRAM < Sensu::Plugin::Check::CLI
44
64
  default: 5
45
65
 
46
66
  def run
47
- total_ram = 0
48
- free_ram = 0
67
+ # calculating free and used ram based on: https://github.com/threez/ruby-vmstat/issues/4 to emulate free -m
68
+ mem = Vmstat.snapshot.memory
69
+ free_ram = mem.inactive_bytes + mem.free_bytes
70
+ used_ram = mem.wired_bytes + mem.active_bytes
71
+ total_ram = mem.total_bytes
49
72
 
50
- `free -m`.split("\n").drop(1).each do |line|
51
- # #YELLOW
52
- free_ram = line.split[3].to_i if line =~ /^-\/\+ buffers\/cache:/ # rubocop:disable RegexpLiteral
53
- total_ram = line.split[1].to_i if line =~ /^Mem:/
73
+ # only free or used should be defined, change defaults to mirror free
74
+ if config[:used]
75
+ config[:free] = false
76
+ config[:warn] = 90
77
+ config[:crit] = 95
54
78
  end
55
79
 
56
80
  if config[:megabytes]
57
- message "#{free_ram} megabytes free RAM left"
58
-
59
- critical if free_ram < config[:crit]
60
- warning if free_ram < config[:warn]
61
- ok
81
+ # free_ram is returned in Bytes. see: https://github.com/threez/ruby-vmstat/blob/master/lib/vmstat/memory.rb
82
+ free_ram /= 1024 / 1024
83
+ used_ram /= 1024 / 1024
84
+ total_ram /= 1024 / 1024
85
+ if config[:free]
86
+ ram = free_ram
87
+ message "#{ram} megabytes of RAM left"
88
+ # return used ram
89
+ elsif config[:used]
90
+ ram = used_ram
91
+ message "#{ram} megabytes of RAM used"
92
+ end
93
+ # use percentages
62
94
  else
63
95
  unknown 'invalid percentage' if config[:crit] > 100 || config[:warn] > 100
64
96
 
65
- percents_left = free_ram * 100 / total_ram
66
- message "#{percents_left}% free RAM left"
67
-
68
- critical if percents_left < config[:crit]
69
- warning if percents_left < config[:warn]
97
+ if config[:free]
98
+ ram = (free_ram / total_ram.to_f * 100).round(2)
99
+ message "#{ram}% RAM free"
100
+ elsif config[:used]
101
+ ram = (used_ram / total_ram.to_f * 100).round(2)
102
+ message "#{ram}% RAM used"
103
+ end
104
+ end
105
+ # determine state
106
+ if config[:free]
107
+ critical if ram <= config[:crit]
108
+ warning if ram <= config[:warn]
109
+ ok
110
+ elsif config[:used]
111
+ critical if ram >= config[:crit]
112
+ warning if ram >= config[:warn]
70
113
  ok
71
114
  end
72
115
  end
@@ -2,7 +2,7 @@ module SensuPluginsMemoryChecks
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 5
5
+ PATCH = 7
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-memory-checks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-07-15 00:00:00.000000000 Z
33
+ date: 2015-08-12 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sensu-plugin
@@ -46,6 +46,20 @@ dependencies:
46
46
  - - '='
47
47
  - !ruby/object:Gem::Version
48
48
  version: 1.2.0
49
+ - !ruby/object:Gem::Dependency
50
+ name: vmstat
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '='
54
+ - !ruby/object:Gem::Version
55
+ version: 2.1.0
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '='
61
+ - !ruby/object:Gem::Version
62
+ version: 2.1.0
49
63
  - !ruby/object:Gem::Dependency
50
64
  name: bundler
51
65
  requirement: !ruby/object:Gem::Requirement
@@ -150,14 +164,14 @@ dependencies:
150
164
  requirements:
151
165
  - - '='
152
166
  - !ruby/object:Gem::Version
153
- version: '0.30'
167
+ version: 0.32.1
154
168
  type: :development
155
169
  prerelease: false
156
170
  version_requirements: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - '='
159
173
  - !ruby/object:Gem::Version
160
- version: '0.30'
174
+ version: 0.32.1
161
175
  - !ruby/object:Gem::Dependency
162
176
  name: yard
163
177
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +186,11 @@ dependencies:
172
186
  - - "~>"
173
187
  - !ruby/object:Gem::Version
174
188
  version: '0.8'
175
- description: Sensu plugins for checking memory
189
+ description: |-
190
+ This plugin provides native memory instrumentation
191
+ for monitoring and metrics collection, including:
192
+ memory usage via `free` and `vmstat`, including metrics.
193
+ Note that this plugin may have cross-platform issues.
176
194
  email: "<sensu-users@googlegroups.com>"
177
195
  executables:
178
196
  - metrics-memory.rb
@@ -227,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
245
  version: '0'
228
246
  requirements: []
229
247
  rubyforge_project:
230
- rubygems_version: 2.4.6
248
+ rubygems_version: 2.4.8
231
249
  signing_key:
232
250
  specification_version: 4
233
251
  summary: Sensu plugins for checking memory
metadata.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- F^���4BC])���8f���
2
- `7
1
+ ���jF�@�iW!�� 5�vt��b��w-5*P�M'��ێ��6��ȣ�m� �`�@��ʐ6׍U���.����հ��;�8BNDݨ�D�
2
+ ����4sU��mL^.�0C�՚�c� ���]�i���*��f��E�������bL����Zj������������gk��1��~h�X��~����n�Jy���I�ݫ�nGrSʽ��Ek��
3
+ �zr9��%�l�"N2��D��