servicemonitor 0.0.15 → 0.0.16

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.
data/lib/MonitorType.rb CHANGED
@@ -24,6 +24,8 @@ class MonitorType
24
24
  puts "*** :name => <name of monitor>"
25
25
  abort
26
26
  end
27
+ @params = params
28
+ @block = params[:block] if !params[:block].nil?
27
29
  @name = params[:name]
28
30
  @email = params[:email]
29
31
  if !@email.nil? then
@@ -75,7 +77,7 @@ class MonitorType
75
77
  end
76
78
  end
77
79
  end
78
-
80
+
79
81
  #Called when a monitor has been tripped
80
82
  #
81
83
  # @param [String] string A description of the trip that occurred
@@ -22,13 +22,16 @@ class MonitorType_Beanstalk<MonitorType_Threshold
22
22
  abort
23
23
  end
24
24
  @queue = params[:queue]
25
+
26
+ @context_sentence = "Checking number of jobs in queue, #{@queue}"
27
+
25
28
  self.sanitise
26
29
  rescue MonitorTypeExceptionHandled => e
27
30
  puts e.message
28
31
  abort()
29
32
  end
30
33
 
31
- def process
34
+ def getValue
32
35
  count = 0
33
36
  begin
34
37
  tubeStats = @beanstalk.stats_tube(@queue)
@@ -36,7 +39,7 @@ class MonitorType_Beanstalk<MonitorType_Threshold
36
39
  rescue Beanstalk::NotFoundError=>e
37
40
  end
38
41
 
39
- self.check( count, "Checking number of jobs in queue, #{@queue}" )
42
+ return count
40
43
  end
41
44
  end
42
45
 
@@ -34,15 +34,17 @@ class MonitorType_Dir<MonitorType_Threshold
34
34
  abort
35
35
  end
36
36
  @path = params[:path]
37
+
38
+ @context_sentence = "Checking number of files in, #{@path}"
39
+
37
40
  self.sanitise
38
41
  rescue MonitorTypeExceptionHandled => e
39
42
  puts e.message
40
43
  abort()
41
44
  end
42
45
 
43
- def process
44
- number_of_files = Dir.glob( "#{@path}/*" ).length
45
- self.check( number_of_files, "Checking number of files in, #{@path}" )
46
+ def getValue
47
+ return Dir.glob( "#{@path}/*" ).length
46
48
  end
47
49
  end
48
50
 
@@ -58,16 +58,17 @@ class MonitorType_FluidDb<MonitorType_Threshold
58
58
  abort
59
59
  end
60
60
  @sql = params[:sql]
61
+
62
+ @context_sentence = "Checking result of sql query, #{@sql}"
63
+
61
64
  self.sanitise
62
65
  rescue MonitorTypeExceptionHandled => e
63
66
  puts e.message
64
67
  abort()
65
68
  end
66
69
 
67
- def process
68
- value = @fluidDb.queryForValue( @sql, [] )
69
-
70
- self.check( value, "Checking result of sql query, #{@sql}" )
70
+ def getValue
71
+ return @fluidDb.queryForValue( @sql, [] )
71
72
  end
72
73
  end
73
74
 
@@ -9,14 +9,35 @@ class MonitorType_Threshold<MonitorType
9
9
  super( params )
10
10
  end
11
11
 
12
+ #Get the context dependent value which is to be checked
13
+ def getValue
14
+ raise "Method needs to be overridden"
15
+ end
16
+
17
+ def process
18
+ if @block.nil? then
19
+ value = self.getValue
20
+ else
21
+ value = @block.call( @params )
22
+ puts "value: #{value}"
23
+ end
24
+
25
+ self.check( value )
26
+ end
27
+
12
28
  #Provides the means to check a value against thresholds
13
- def check( value, context_sentence )
29
+ def check( value )
30
+ context_sentence = ""
31
+ if !@context_sentence.nil? then
32
+ context_sentence = "#{@context_sentence}\n"
33
+ end
34
+
14
35
  value = value.to_i
15
36
  if !@min.nil? && value < @min then
16
- self.alert( "#{context_sentence}\nMinimum threshold exceeded. Minimum: #{@min}, Actual: #{value}" )
37
+ self.alert( "#{context_sentence}Minimum threshold exceeded. Minimum: #{@min}, Actual: #{value}" )
17
38
  end
18
39
  if !@max.nil? && value > @max then
19
- self.alert( "#{context_sentence}\nMaximum threshold exceeded. Maximum: #{@max}, Actual: #{value}" )
40
+ self.alert( "#{context_sentence}Maximum threshold exceeded. Maximum: #{@max}, Actual: #{value}" )
20
41
  end
21
42
 
22
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: servicemonitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-31 00:00:00.000000000 Z
12
+ date: 2013-11-02 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Monitor various parts of the system
15
15
  email: guy@guyirvine.com