city-watch 0.5.6 → 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/city_watch/util/datasets.rb +25 -2
- data/lib/city_watch/util/rules.rb +1 -1
- data/lib/city_watch/util/status.rb +15 -0
- data/lib/city_watch/util/watchman.rb +3 -0
- data/lib/city_watch/watchmen/disk_usage.rb +4 -0
- data/lib/city_watch/watchmen/sysinfo.rb +1 -1
- data/lib/city_watch/watchmen/uptime.rb +4 -1
- data/lib/version.rb +1 -1
- metadata +2 -1
data/Gemfile.lock
CHANGED
@@ -1,7 +1,30 @@
|
|
1
1
|
module DataSets
|
2
2
|
|
3
|
-
def
|
4
|
-
|
3
|
+
def dataset(name,&block)
|
4
|
+
@datasets ||= {}
|
5
|
+
@datasets[name] = block
|
6
|
+
end
|
7
|
+
|
8
|
+
def run_dataset_collector(dat)
|
9
|
+
@datasets.map do |(name,dataset)|
|
10
|
+
dataset.call(dat)
|
11
|
+
end if @datasets
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_data_set(data_set_name,s_time,e_time=Time.now,host=host)
|
15
|
+
CityWatch.redis.zrevrangebyscore(data_set_key(data_set_name,host), s_time.to_i, e_time.to_i, :with_scores => true).map do |(val,score)|
|
16
|
+
timestamp,value = val.split(",")
|
17
|
+
[Time.at(timestamp.to_i),value]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def data_set_key(data_set_name,host=host)
|
22
|
+
CityWatch.redis.sadd "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::data_sets", data_set_name
|
23
|
+
"#{CityWatch.config[:prefix]}::#{host}::#{self.name}::data_set::#{data_set_name}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def add_to_data_set(data_set_name,val,time=Time.now,host=host)
|
27
|
+
CityWatch.redis.zadd data_set_key(data_set_name,host), time.to_i, "#{Time.now.to_i},#{val}"
|
5
28
|
end
|
6
29
|
|
7
30
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Status
|
2
|
+
|
3
|
+
def set_status_var(var,val,host=host)
|
4
|
+
CityWatch.redis.hset "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::status", var, val
|
5
|
+
end
|
6
|
+
|
7
|
+
def status_vars(host=host)
|
8
|
+
CityWatch.redis.hgetall "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::status"
|
9
|
+
end
|
10
|
+
|
11
|
+
def status_var(var,host=host)
|
12
|
+
CityWatch.redis.hget "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::status", var
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -3,6 +3,7 @@ require 'city_watch/util/rules'
|
|
3
3
|
require 'city_watch/util/flags'
|
4
4
|
require 'city_watch/util/notifications'
|
5
5
|
require 'city_watch/util/datasets'
|
6
|
+
require 'city_watch/util/status'
|
6
7
|
|
7
8
|
module Watchman
|
8
9
|
|
@@ -21,6 +22,7 @@ module Watchman
|
|
21
22
|
CityWatch.redis.zadd "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::summary", rcv_time, Yajl::Encoder.encode(sum)
|
22
23
|
end
|
23
24
|
run_rules(dat)
|
25
|
+
run_dataset_collector(dat)
|
24
26
|
send_alerts!
|
25
27
|
return 0, sum || nil
|
26
28
|
end
|
@@ -59,6 +61,7 @@ module Watchman
|
|
59
61
|
base.extend(Flags)
|
60
62
|
base.extend(Notifications)
|
61
63
|
base.extend(DataSets)
|
64
|
+
base.extend(Status)
|
62
65
|
base.extend(ClassMethods)
|
63
66
|
Watchmen.register(base)
|
64
67
|
end
|
@@ -2,9 +2,12 @@ class Uptime
|
|
2
2
|
|
3
3
|
include Watchman
|
4
4
|
|
5
|
+
set_default :uptime_file, '/proc/uptime'
|
6
|
+
|
5
7
|
def self.data
|
8
|
+
return {} if !File.exists?(option(:uptime_file))
|
6
9
|
out = {}
|
7
|
-
out[:uptime], out[:idle] = File.read(
|
10
|
+
out[:uptime], out[:idle] = File.read(option(:uptime_file)).strip.split.map {|t| Float(t) }
|
8
11
|
base = out.dup
|
9
12
|
[[:minutes,Proc.new{|t| t / 60 }],[:hours,Proc.new{|t| t / (60*60) }],[:days,Proc.new{|t| t / (60*60*24) }]].each do |(id,func)|
|
10
13
|
base.each do |k,v|
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: city-watch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- John Bragg
|
@@ -134,6 +134,7 @@ files:
|
|
134
134
|
- lib/city_watch/util/notifications.rb
|
135
135
|
- lib/city_watch/util/rules.rb
|
136
136
|
- lib/city_watch/util/run_command.rb
|
137
|
+
- lib/city_watch/util/status.rb
|
137
138
|
- lib/city_watch/util/watchman.rb
|
138
139
|
- lib/city_watch/watchmen.rb
|
139
140
|
- lib/city_watch/watchmen/cpu_usage.rb
|