servicemonitor 0.0.6 → 0.0.8
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/bin/servicemonitor +10 -1
- data/lib/MonitorType.rb +7 -2
- data/lib/MonitorType/Beanstalk.rb +16 -6
- data/lib/MonitorType/Dir.rb +10 -5
- data/lib/MonitorType/FluidDb.rb +42 -7
- data/lib/MonitorType/Threshold.rb +2 -2
- metadata +2 -2
data/bin/servicemonitor
CHANGED
@@ -29,7 +29,16 @@ end
|
|
29
29
|
$a = MonitorManager.new
|
30
30
|
|
31
31
|
log "Loading dsl, #{dslName}"
|
32
|
+
begin
|
32
33
|
load dslName
|
33
|
-
|
34
34
|
$a.run
|
35
|
+
rescue ArgumentError=>e
|
36
|
+
puts "*** Your dsl is not formatted correctly"
|
37
|
+
puts "*** Ensure each line has the format,"
|
38
|
+
puts "*** <command>, [:arg=>value]"
|
39
|
+
rescue SystemExit=>e
|
40
|
+
rescue Exception=>e
|
41
|
+
puts e.class.name
|
42
|
+
puts e.message
|
43
|
+
end
|
35
44
|
|
data/lib/MonitorType.rb
CHANGED
@@ -5,8 +5,13 @@ end
|
|
5
5
|
|
6
6
|
class MonitorType
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
|
8
|
+
def initialize( params )
|
9
|
+
if params[:name].nil? then
|
10
|
+
puts "*** Monitor parameter missing, name"
|
11
|
+
puts "*** :name => <name of monitor>"
|
12
|
+
abort
|
13
|
+
end
|
14
|
+
@name = params[:name]
|
10
15
|
@email = params[:email]
|
11
16
|
|
12
17
|
cron_string = params[:cron] || "0 1 * * *"
|
@@ -7,10 +7,15 @@ class MonitorType_Beanstalk<MonitorType_Threshold
|
|
7
7
|
@beanstalk = Beanstalk::Pool.new([@connection_string])
|
8
8
|
end
|
9
9
|
|
10
|
-
def initialize(
|
11
|
-
super(
|
10
|
+
def initialize( params )
|
11
|
+
super( params )
|
12
12
|
@connection_string = params[:beanstalk] || "localhost:11300"
|
13
|
-
|
13
|
+
if params[:queue].nil? then
|
14
|
+
puts "*** Beanstalk parameter missing, queue"
|
15
|
+
puts "*** :queue => <queue name>"
|
16
|
+
abort
|
17
|
+
end
|
18
|
+
@queue = params[:queue]
|
14
19
|
self.sanitise
|
15
20
|
rescue MonitorTypeExceptionHandled => e
|
16
21
|
puts e.message
|
@@ -18,13 +23,18 @@ class MonitorType_Beanstalk<MonitorType_Threshold
|
|
18
23
|
end
|
19
24
|
|
20
25
|
def process
|
26
|
+
count = 0
|
27
|
+
begin
|
21
28
|
tubeStats = @beanstalk.stats_tube(@queue)
|
29
|
+
count = tubeStats["current-jobs-ready"]
|
30
|
+
rescue Beanstalk::NotFoundError=>e
|
31
|
+
end
|
22
32
|
|
23
|
-
self.check(
|
33
|
+
self.check( count, "Checking number of jobs in queue, #{@queue}" )
|
24
34
|
end
|
25
35
|
end
|
26
36
|
|
27
|
-
def beanstalk(
|
28
|
-
$a.add( MonitorType_Beanstalk.new(
|
37
|
+
def beanstalk( params )
|
38
|
+
$a.add( MonitorType_Beanstalk.new( params ) )
|
29
39
|
end
|
30
40
|
|
data/lib/MonitorType/Dir.rb
CHANGED
@@ -22,9 +22,14 @@ class MonitorType_Dir<MonitorType_Threshold
|
|
22
22
|
raise MonitorTypeExceptionHandled.new(string)
|
23
23
|
end
|
24
24
|
|
25
|
-
def initialize(
|
26
|
-
super(
|
27
|
-
|
25
|
+
def initialize( params )
|
26
|
+
super( params )
|
27
|
+
if params[:path].nil? then
|
28
|
+
puts "*** Dir parameter missing, path"
|
29
|
+
puts "*** :path => <path to directory to be monitored>"
|
30
|
+
abort
|
31
|
+
end
|
32
|
+
@path = params[:path]
|
28
33
|
self.sanitise
|
29
34
|
rescue MonitorTypeExceptionHandled => e
|
30
35
|
puts e.message
|
@@ -37,7 +42,7 @@ class MonitorType_Dir<MonitorType_Threshold
|
|
37
42
|
end
|
38
43
|
end
|
39
44
|
|
40
|
-
def dir(
|
41
|
-
$a.add( MonitorType_Dir.new(
|
45
|
+
def dir( params )
|
46
|
+
$a.add( MonitorType_Dir.new( params ) )
|
42
47
|
end
|
43
48
|
|
data/lib/MonitorType/FluidDb.rb
CHANGED
@@ -4,13 +4,48 @@ require "MonitorType/Threshold"
|
|
4
4
|
class MonitorType_FluidDb<MonitorType_Threshold
|
5
5
|
|
6
6
|
def sanitise
|
7
|
-
|
7
|
+
begin
|
8
|
+
@fluidDb = FluidDb.Db( @uri )
|
9
|
+
rescue Exception=>e
|
10
|
+
puts "*** FluidDb encountered an error while connecting to the db"
|
11
|
+
puts "*** Error: #{e.message}"
|
12
|
+
puts "*** uri: #{@uri}"
|
13
|
+
puts "*** Please fix the error and run again"
|
14
|
+
abort()
|
15
|
+
end
|
16
|
+
|
17
|
+
begin
|
18
|
+
value = @fluidDb.queryForValue( @sql, [] )
|
19
|
+
rescue Exception=>e
|
20
|
+
puts "*** FluidDb encountered an error while running the sql"
|
21
|
+
puts "*** sql: #{@sql}"
|
22
|
+
puts "*** Please fix the query and run again"
|
23
|
+
abort()
|
24
|
+
end
|
8
25
|
end
|
9
26
|
|
10
|
-
def initialize(
|
11
|
-
super(
|
12
|
-
|
13
|
-
|
27
|
+
def initialize( params )
|
28
|
+
super( params )
|
29
|
+
if params[:uri].nil? then
|
30
|
+
puts "*** FluidDb parameter missing, uri"
|
31
|
+
puts "*** :uri => <uri pointing to db to be monitored>"
|
32
|
+
abort
|
33
|
+
end
|
34
|
+
begin
|
35
|
+
@uri = URI.parse( params[:uri] )
|
36
|
+
rescue URI::InvalidURIError=>e
|
37
|
+
puts "*** FluidDb encountered an error while parsing the uri"
|
38
|
+
puts "*** uri: #{params[:uri]}"
|
39
|
+
puts "*** Please fix the uri and run again"
|
40
|
+
abort()
|
41
|
+
end
|
42
|
+
|
43
|
+
if params[:sql].nil? then
|
44
|
+
puts "*** FluidDb parameter missing, sql"
|
45
|
+
puts "*** :sql => <sql statement, producing a single column, single row which yeidls a number>"
|
46
|
+
abort
|
47
|
+
end
|
48
|
+
@sql = params[:sql]
|
14
49
|
self.sanitise
|
15
50
|
rescue MonitorTypeExceptionHandled => e
|
16
51
|
puts e.message
|
@@ -24,7 +59,7 @@ class MonitorType_FluidDb<MonitorType_Threshold
|
|
24
59
|
end
|
25
60
|
end
|
26
61
|
|
27
|
-
def fluiddb(
|
28
|
-
$a.add( MonitorType_FluidDb.new(
|
62
|
+
def fluiddb( params )
|
63
|
+
$a.add( MonitorType_FluidDb.new( params ) )
|
29
64
|
end
|
30
65
|
|
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.
|
4
|
+
version: 0.0.8
|
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-
|
12
|
+
date: 2013-10-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Monitor various parts of the system
|
15
15
|
email: guy@guyirvine.com
|