sensu-plugins-environmental-checks 1.0.0 → 1.1.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: 5a28d1fb6edb59e083465a53074920eb2347cc00
4
- data.tar.gz: a2da897df65fb0a8a3da8fdc4aafb012e6f1c730
3
+ metadata.gz: 8daf34425dcb66a605ba5a480d3e8b761f2e1c76
4
+ data.tar.gz: 44c120575ecfe122db0e580d467021509d5ffb19
5
5
  SHA512:
6
- metadata.gz: 4f76f90b77eca43ab56a7564dad5a99504eca698023ce5c68052b686ef39cf84a7f99e1d28e897f40a8c046ed9501b20d72985f058bbea07054583f45e551658
7
- data.tar.gz: fc83dc20522e23288fbdb344e51267b8993a8c250b57c9589dc5afbd37d578ddff3bf4273de5aa99b81102fc44fa8dfe0269b532f803972040a77400d2fce570
6
+ metadata.gz: 8156bf488b89a740124a320304550074ca1dbaf6d5f316774780700180bcafceadb8dbb7745d8815dad351f4dd392f210d3fafc960b923b0820bb0a33f3d9974
7
+ data.tar.gz: 36f19f586fd14cc8f77eaadbcf159d1836b530303d614287ffd5f33b22cb2aef699a7edcd67ffe0c40550631e406ed3a38780ffefab0628d3d9aac2e40a81e86
@@ -5,6 +5,9 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.1.0] - 2017-05-17
9
+ - add temperature check (@holygits)
10
+
8
11
  ## [1.0.0] - 2017-03-15
9
12
  ### Added
10
13
  - made metrics aware of multiple chips (@GhostLyrics)
@@ -33,7 +36,8 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
33
36
  ### Added
34
37
  - initial release
35
38
 
36
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/1.0.0...HEAD
39
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/1.1.0...HEAD
40
+ [1.1.0]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/1.0.0...1.1.0
37
41
  [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/0.0.3...1.0.0
38
42
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/0.0.2...0.0.3
39
43
  [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-environmental-checks/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -27,6 +27,12 @@ Multiple chips are supported and labelled by the chip name (e.g. `sensors.corete
27
27
 
28
28
  *If you do not get all of the listed values, your mainboard probably does not support the features. To check, you can query it yourself by running* `sensors` *or* `sensors -A` *respectively.*
29
29
 
30
+ ### check-temperature.rb
31
+
32
+ #### checks
33
+
34
+ Maps *high* and *crit* values as reported by `lm-sensors` to warning and critical status respectivley.
35
+
30
36
  ## Usage
31
37
 
32
38
  To collect metrics with the scheme of your choice:
@@ -0,0 +1,88 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-temperature
4
+ #
5
+ # DESCRIPTION:
6
+ #
7
+ # OUTPUT:
8
+ # plain text
9
+ #
10
+ # PLATFORMS:
11
+ # Linux
12
+ #
13
+ # DEPENDENCIES:
14
+ # gem: sensu-plugin
15
+ # gem: socket
16
+ # lm-sensors
17
+ #
18
+ # USAGE:
19
+ #
20
+ # NOTES:
21
+ #
22
+ # LICENSE:
23
+ # Jordan Beauchamp beauchjord@gmail.com
24
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
25
+ # for details.
26
+ #
27
+
28
+ require 'sensu-plugin/check/cli'
29
+ require 'socket'
30
+
31
+ #
32
+ # Sensors
33
+ #
34
+ class CheckTemperature < Sensu::Plugin::Check::CLI
35
+ #
36
+ # Setup variables
37
+ #
38
+ def initialize
39
+ super
40
+ @crit_temp = []
41
+ @warn_temp = []
42
+ end
43
+
44
+ #
45
+ # Generate output
46
+ #
47
+
48
+ def usage_summary
49
+ (@crit_temp + @warn_temp).join(', ')
50
+ end
51
+
52
+ #
53
+ # Main function
54
+ #
55
+ def run
56
+ raw = `sensors`
57
+ sections = raw.split("\n\n")
58
+ metrics = {}
59
+ sections.each do |section|
60
+ section.split("\n").drop(1).each do |line|
61
+ begin
62
+ key, value = line.split(':')
63
+ key = key.downcase.gsub(/\s/, '')
64
+ if key.start_with?('temp', 'core', 'loc', 'physical')
65
+ current, high, critical = value.scan(/\+(\d+\.\d+)/i)
66
+ metrics[key] = [current[0], high[0], critical[0]].map(&:to_f)
67
+ end
68
+ rescue
69
+ print "malformed section from sensors: #{line}" + "\n"
70
+ end
71
+ end
72
+ end
73
+ metrics.each do |k, v|
74
+ print(v)
75
+ current, high, critical = v
76
+ if current > critical
77
+ @crit_temp << "#{k} has exceeded CRITICAL temperature @ #{current}°C"
78
+ elsif current > high
79
+ @warn_temp << "#{k} has exceeded WARNING temperature @ #{current}°C"
80
+ end
81
+ end
82
+
83
+ critical usage_summary unless @crit_temp.empty?
84
+ warning usage_summary unless @warn_temp.empty?
85
+
86
+ ok 'All sensors are reporting safe temperature readings.'
87
+ end
88
+ end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsEnvironmentalChecks
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 0
4
+ MINOR = 1
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-environmental-checks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.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-03-16 00:00:00.000000000 Z
11
+ date: 2017-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -155,6 +155,7 @@ description: |-
155
155
  for metrics collection, including: temperature via `sensors`
156
156
  email: "<sensu-users@googlegroups.com>"
157
157
  executables:
158
+ - check-temperature.rb
158
159
  - metrics-temperature.rb
159
160
  extensions: []
160
161
  extra_rdoc_files: []
@@ -162,6 +163,7 @@ files:
162
163
  - CHANGELOG.md
163
164
  - LICENSE
164
165
  - README.md
166
+ - bin/check-temperature.rb
165
167
  - bin/metrics-temperature.rb
166
168
  - lib/sensu-plugins-environmental-checks.rb
167
169
  - lib/sensu-plugins-environmental-checks/version.rb