continuent-tools-monitoring 0.0.5 → 0.1.0

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: 1173f69adfc3ab832c80442c0f06d6bf50fca51e
4
- data.tar.gz: 8ec469c36796aaa5a3d5c3de4d4c962a09fe926e
3
+ metadata.gz: a0cdf9cdd109262fd654369f613ade4ebacb4076
4
+ data.tar.gz: cd9c9d3bf3d44937c54ffb85fb0c0c20135d706b
5
5
  SHA512:
6
- metadata.gz: 5e608300a0495c280ee1a4081838c0f76f6156dc3bbd83c2a8e0465a41a4340cacc4504ea80060be632a1f2584b23f6f062076f57f153127a31727f27832d03d
7
- data.tar.gz: 00648397f5a16566948647e093b04c7cf90402d4ffeace5f38061aab194eba74ecaccbe01e695c130c7f8a014a0730aa0edc518f31dcabcabcfcd218256c1f58
6
+ metadata.gz: f6f96cb930f082eda33f06446f47dff461cf77c8874474648850521b6c4a939c80bc780cc6262df3ed3367f34b63259b5e19fcc1b39d9074b696639b214aa090
7
+ data.tar.gz: bef6cbbd17ef496cb5408cce15c27d448d5a92fa3d2e7d0cc6815995dee48618cc5a435caeef1cee9ed46b6da4306b910f5f1ac737b228f4230dca78c96123d5
@@ -2,64 +2,119 @@ module TungstenNagiosMonitor
2
2
  NAGIOS_OK=0
3
3
  NAGIOS_WARNING=1
4
4
  NAGIOS_CRITICAL=2
5
+ NAGIOS_UNKNOWN=3
5
6
 
6
- def configure
7
- super()
8
-
9
- opt(:nagios_status_sent, false)
10
- @perfdata = []
11
-
12
- if uses_nagios_comparison_levels?()
13
- add_option(:warning_level, {
14
- :on => "-w String",
15
- :help => "The warning level for this monitor"
16
- })
7
+ # This script supports the warning (-w) and critical (-c) arguments.
8
+ # Override this function to return true if you would like to use
9
+ # those arguments.
10
+ def uses_thresholds?
11
+ false
12
+ end
13
+
14
+ # Compare the value to the collected threshold values as floats
15
+ def check_threshold(value)
16
+ unless value.to_s() =~ /^[0-9\.]+$/
17
+ unknown("Unable to compare a non-numeric value : #{value}")
18
+ end
17
19
 
18
- add_option(:critical_level, {
19
- :on => "-c String",
20
- :help => "The critical level for this monitor"
21
- })
20
+ check = value.to_s().to_f()
21
+ if check >= opt(:critical_level).to_f()
22
+ critical(build_critical_message(value))
23
+ elsif check >= opt(:warning_level).to_f()
24
+ warning(build_warning_message(value))
25
+ else
26
+ ok(build_ok_message(value))
22
27
  end
23
28
  end
24
29
 
25
- def uses_nagios_comparison_levels?
26
- false
30
+ # Build an output string when the value has passed
31
+ def build_ok_message(value)
32
+ "Value is OK (#{value})"
33
+ end
34
+
35
+ # Build an output string when the value is at a warning level
36
+ def build_warning_message(value)
37
+ "Value is too high (#{value})"
38
+ end
39
+
40
+ # Build an output string when the value is critical
41
+ def build_critical_message(value)
42
+ "Value is too high (#{value})"
27
43
  end
28
44
 
45
+ # Add a key=>value pair to the performance data
29
46
  def add_perfdata(key, value)
30
47
  @perfdata << "#{key}=#{value};"
31
48
  end
32
49
 
50
+ # Return a Nagios-formatted performance data string
33
51
  def perfdata
34
52
  @perfdata.join(" ")
35
53
  end
36
54
 
37
- def nagios_ok(msg)
55
+ # Output a Nagios-formatted success return message and return the
56
+ # OK code
57
+ def ok(msg)
38
58
  opt(:nagios_status_sent, true)
39
- puts "OK: #{msg} | #{perfdata()}"
59
+ TU.output "OK: #{msg} | #{perfdata()}"
40
60
  cleanup(NAGIOS_OK)
41
61
  end
42
62
 
43
- def nagios_warning(msg)
63
+ # Output a Nagios-formatted warning return message and return the
64
+ # warning code
65
+ def warning(msg)
44
66
  opt(:nagios_status_sent, true)
45
- puts "WARNING: #{msg} | #{perfdata()}"
67
+ TU.output "WARNING: #{msg} | #{perfdata()}"
46
68
  cleanup(NAGIOS_WARNING)
47
69
  end
48
70
 
49
- def nagios_critical(msg)
71
+ # Output a Nagios-formatted critical return message and return the
72
+ # critical code
73
+ def critical(msg)
50
74
  opt(:nagios_status_sent, true)
51
- puts "CRITICAL: #{msg} | #{perfdata()}"
75
+ TU.output "CRITICAL: #{msg} | #{perfdata()}"
52
76
  cleanup(NAGIOS_CRITICAL)
53
77
  end
54
78
 
79
+ # Output a Nagios-formatted unknown return message and return the
80
+ # unknown code
81
+ def unknown(msg)
82
+ opt(:nagios_status_sent, true)
83
+ TU.output "UNKNOWN: #{msg} | #{perfdata()}"
84
+ cleanup(NAGIOS_UNKNOWN)
85
+ end
86
+
87
+ private
88
+
89
+ def configure
90
+ super()
91
+
92
+ opt(:nagios_status_sent, false)
93
+ @perfdata = []
94
+
95
+ if uses_thresholds?()
96
+ add_option(:warning_level, {
97
+ :on => "-w String",
98
+ :help => "The warning level for this monitor",
99
+ :required => true,
100
+ })
101
+
102
+ add_option(:critical_level, {
103
+ :on => "-c String",
104
+ :help => "The critical level for this monitor",
105
+ :required => true,
106
+ })
107
+ end
108
+ end
109
+
55
110
  def cleanup(code = 0)
56
111
  if opt(:nagios_status_sent) == false
57
112
  if code == 0
58
- puts "OK: No errors | #{perfdata()}"
113
+ TU.output "OK: No errors | #{perfdata()}"
59
114
  code = NAGIOS_OK
60
115
  else
61
- puts "CRITICAL: Errors were encountered while running this script | #{perfdata()}"
62
- code = NAGIOS_CRITICAL
116
+ TU.output "UNKNOWN: Errors were encountered while running this script | #{perfdata()}"
117
+ code = NAGIOS_UNKNOWN
63
118
  end
64
119
  end
65
120
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: continuent-tools-monitoring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Continuent
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-03 00:00:00.000000000 Z
11
+ date: 2014-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: continuent-tools-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.1.0
27
27
  description:
28
28
  email: info@continuent.com
29
29
  executables:
@@ -60,5 +60,5 @@ rubyforge_project:
60
60
  rubygems_version: 2.0.3
61
61
  signing_key:
62
62
  specification_version: 4
63
- summary: Continuent Tools core monitoring tools
63
+ summary: Continuent Tungsten tools core monitoring tools
64
64
  test_files: []