flapjack 0.7.13 → 0.7.14
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/CHANGELOG.md +4 -0
- data/lib/flapjack/data/entity.rb +2 -2
- data/lib/flapjack/gateways/web.rb +5 -5
- data/lib/flapjack/gateways/web/views/check.haml +28 -8
- data/lib/flapjack/version.rb +1 -1
- data/spec/lib/flapjack/gateways/web_spec.rb +3 -3
- metadata +4 -4
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
## Flapjack Changelog
|
2
2
|
|
3
|
+
# 0.7.14 - 2013-06-19
|
4
|
+
- Bug: Display of checks on web ui with a colon in their name is screwed gh-213 (@jessereynolds)
|
5
|
+
- Bug: show last critical, warning, unknown notificaiton times in web ui gh-211 (@jessereynolds)
|
6
|
+
|
3
7
|
# 0.7.13 - 2013-06-18
|
4
8
|
- Bug: test notifications are blocked by notification rules gh-188 (@jessereynolds)
|
5
9
|
- Bug: unscheduled maintenances does not prevent alerts for checks with colons in their name gh-208 (@jessereynolds)
|
data/lib/flapjack/data/entity.rb
CHANGED
@@ -97,12 +97,12 @@ module Flapjack
|
|
97
97
|
|
98
98
|
def self.find_all_with_checks(options)
|
99
99
|
raise "Redis connection not set" unless redis = options[:redis]
|
100
|
-
redis.keys("check:*").map {|s| s.
|
100
|
+
redis.keys("check:*").map {|s| s.sub(/^check:/, '').split(':', 2).first }.to_set
|
101
101
|
end
|
102
102
|
|
103
103
|
def self.find_all_with_failing_checks(options)
|
104
104
|
raise "Redis connection not set" unless redis = options[:redis]
|
105
|
-
redis.zrange("failed_checks", 0, -1).map {|s| s.
|
105
|
+
redis.zrange("failed_checks", 0, -1).map {|s| s.split(':', 2).first }.to_set
|
106
106
|
end
|
107
107
|
|
108
108
|
def contacts
|
@@ -82,8 +82,8 @@ module Flapjack
|
|
82
82
|
|
83
83
|
# TODO (?) recast as Entity.all do |e|; e.checks.do |ec|; ...
|
84
84
|
@states = redis.keys('*:*:states').map { |r|
|
85
|
-
|
86
|
-
[
|
85
|
+
entity, check = r.sub(/:states$/, '').split(':', 2)
|
86
|
+
[entity, check] + entity_check_state(entity, check)
|
87
87
|
}.compact.sort_by {|parts| parts }
|
88
88
|
|
89
89
|
haml :checks
|
@@ -94,7 +94,7 @@ module Flapjack
|
|
94
94
|
@adjective = 'failing'
|
95
95
|
|
96
96
|
@states = redis.zrange('failed_checks', 0, -1).map {|key|
|
97
|
-
parts = key.split(':')
|
97
|
+
parts = key.split(':', 2)
|
98
98
|
[parts[0], parts[1]] + entity_check_state(parts[0], parts[1])
|
99
99
|
}.compact.sort_by {|parts| parts}
|
100
100
|
|
@@ -159,8 +159,8 @@ module Flapjack
|
|
159
159
|
@entity = params[:entity]
|
160
160
|
entity_stats
|
161
161
|
@states = redis.keys("#{@entity}:*:states").map { |r|
|
162
|
-
|
163
|
-
[
|
162
|
+
check = r.sub(/^#{@entity}:/, '').sub(/:states$/, '')
|
163
|
+
[@entity, check] + entity_check_state(@entity, check)
|
164
164
|
}.compact.sort_by {|parts| parts }
|
165
165
|
haml :entity
|
166
166
|
end
|
@@ -44,16 +44,36 @@
|
|
44
44
|
%td Last update:
|
45
45
|
%td #{relative_time_ago(Time.at(@check_last_update.to_i))} ago
|
46
46
|
%td #{Time.at(@check_last_update.to_i)}
|
47
|
-
- if @last_notifications[:
|
48
|
-
-
|
49
|
-
-
|
47
|
+
- if @last_notifications[:critical]
|
48
|
+
- last_critical_relative = relative_time_ago(Time.at(@last_notifications[:critical])) + " ago"
|
49
|
+
- last_critical = Time.at(@last_notifications[:critical]).to_s
|
50
50
|
- else
|
51
|
-
-
|
52
|
-
-
|
51
|
+
- last_critical_relative = 'never'
|
52
|
+
- last_critical = ''
|
53
53
|
%tr
|
54
|
-
%td Last
|
55
|
-
%td=
|
56
|
-
%td=
|
54
|
+
%td Last critical notification:
|
55
|
+
%td= last_critical_relative
|
56
|
+
%td= last_critical
|
57
|
+
- if @last_notifications[:warning]
|
58
|
+
- last_warning_relative = relative_time_ago(Time.at(@last_notifications[:warning])) + " ago"
|
59
|
+
- last_warning = Time.at(@last_notifications[:warning]).to_s
|
60
|
+
- else
|
61
|
+
- last_warning_relative = 'never'
|
62
|
+
- last_warning = ''
|
63
|
+
%tr
|
64
|
+
%td Last warning notification:
|
65
|
+
%td= last_warning_relative
|
66
|
+
%td= last_warning
|
67
|
+
- if @last_notifications[:unknown]
|
68
|
+
- last_unknown_relative = relative_time_ago(Time.at(@last_notifications[:unknown])) + " ago"
|
69
|
+
- last_unknown = Time.at(@last_notifications[:unknown]).to_s
|
70
|
+
- else
|
71
|
+
- last_unknown_relative = 'never'
|
72
|
+
- last_unknown = ''
|
73
|
+
%tr
|
74
|
+
%td Last unknown notification:
|
75
|
+
%td= last_unknown_relative
|
76
|
+
%td= last_unknown
|
57
77
|
- if @last_notifications[:recovery]
|
58
78
|
- last_recovery_relative = relative_time_ago(Time.at(@last_notifications[:recovery])) + " ago"
|
59
79
|
- last_recovery = Time.at(@last_notifications[:recovery]).to_s
|
data/lib/flapjack/version.rb
CHANGED
@@ -67,7 +67,7 @@ describe Flapjack::Gateways::Web, :sinatra => true, :logger => true do
|
|
67
67
|
# (for the methods that access redis directly)
|
68
68
|
|
69
69
|
it "shows a page listing all checks" do
|
70
|
-
redis.should_receive(:keys).with('*:*:states').and_return(["#{entity_name}:#{check}
|
70
|
+
redis.should_receive(:keys).with('*:*:states').and_return(["#{entity_name}:#{check}"])
|
71
71
|
|
72
72
|
expect_check_stats
|
73
73
|
|
@@ -84,7 +84,7 @@ describe Flapjack::Gateways::Web, :sinatra => true, :logger => true do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it "shows a page listing failing checks" do
|
87
|
-
redis.should_receive(:zrange).with('failed_checks', 0, -1).and_return(["#{entity_name}:#{check}
|
87
|
+
redis.should_receive(:zrange).with('failed_checks', 0, -1).and_return(["#{entity_name}:#{check}"])
|
88
88
|
|
89
89
|
expect_check_stats
|
90
90
|
|
@@ -101,7 +101,7 @@ describe Flapjack::Gateways::Web, :sinatra => true, :logger => true do
|
|
101
101
|
|
102
102
|
it "shows a page listing flapjack statistics" do
|
103
103
|
redis.should_receive(:keys).with('check:*').and_return([])
|
104
|
-
redis.should_receive(:zrange).with('failed_checks', 0, -1).and_return(["#{entity_name}:#{check}
|
104
|
+
redis.should_receive(:zrange).with('failed_checks', 0, -1).and_return(["#{entity_name}:#{check}"])
|
105
105
|
expect_stats
|
106
106
|
expect_check_stats
|
107
107
|
expect_entity_stats
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flapjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-06-
|
14
|
+
date: 2013-06-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: dante
|
@@ -554,7 +554,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
554
554
|
version: '0'
|
555
555
|
segments:
|
556
556
|
- 0
|
557
|
-
hash:
|
557
|
+
hash: 1257649684215176614
|
558
558
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
559
559
|
none: false
|
560
560
|
requirements:
|
@@ -563,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
563
563
|
version: '0'
|
564
564
|
segments:
|
565
565
|
- 0
|
566
|
-
hash:
|
566
|
+
hash: 1257649684215176614
|
567
567
|
requirements: []
|
568
568
|
rubyforge_project:
|
569
569
|
rubygems_version: 1.8.23
|