flapjack 0.7.25 → 0.7.26
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +7 -0
- data/lib/flapjack/coordinator.rb +2 -1
- data/lib/flapjack/data/event.rb +2 -0
- data/lib/flapjack/data/notification.rb +1 -0
- data/lib/flapjack/filters/acknowledgement.rb +3 -4
- data/lib/flapjack/gateways/email/alert.text.erb +7 -7
- data/lib/flapjack/gateways/web.rb +4 -4
- data/lib/flapjack/notifier.rb +2 -0
- data/lib/flapjack/processor.rb +8 -12
- data/lib/flapjack/version.rb +1 -1
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
## Flapjack Changelog
|
2
2
|
|
3
|
+
# 0.7.26 - 2013-09-16
|
4
|
+
- Bug: last critical notification is empty in web UI gh-306 (@ali-graham)
|
5
|
+
- Bug: Ending unscheduled maintenance in Web UI is broken gh-307 (@jessereynolds)
|
6
|
+
- Bug: Acknowledgement jabber message shows incorrect duration gh-309 (@jessereynolds)
|
7
|
+
- Bug: Details showing up in email alerts when "empty" gh-310 (@jessereynolds)
|
8
|
+
- Bug: Only show Previous State and Summary when current state != previous unique state gh-311 (@jessereynolds)
|
9
|
+
|
3
10
|
# 0.7.25 - 2013-09-13
|
4
11
|
- Bug: EntityCheck last_update= isn't being called for update_state since refactoring gh-303 (@ali-graham)
|
5
12
|
- Bug: flapjack-nagios-receiver is double-escaping its JSON data gh-304 (@jessereynolds)
|
data/lib/flapjack/coordinator.rb
CHANGED
@@ -151,7 +151,8 @@ module Flapjack
|
|
151
151
|
pik.update_status
|
152
152
|
status = pik.status
|
153
153
|
next if old_status.eql?(status)
|
154
|
-
|
154
|
+
# # can't log on exit w/Ruby 2.0
|
155
|
+
# @logger.info "#{pik.type}: #{old_status} -> #{status}"
|
155
156
|
end
|
156
157
|
|
157
158
|
if piks.any? {|p| p.status == 'stopping' }
|
data/lib/flapjack/data/event.rb
CHANGED
@@ -106,6 +106,8 @@ module Flapjack
|
|
106
106
|
'acknowledgement_id', 'duration'].each do |key|
|
107
107
|
instance_variable_set("@#{key}", attrs[key])
|
108
108
|
end
|
109
|
+
# details is optional. set it to nil if it only contains whitespace
|
110
|
+
@details = (@details.is_a?(String) && ! @details.strip.empty?) ? @details.strip : nil
|
109
111
|
end
|
110
112
|
|
111
113
|
def state
|
@@ -33,11 +33,10 @@ module Flapjack
|
|
33
33
|
return true
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
:summary => event.summary)
|
36
|
+
um_duration = event.duration || (4 * 60 * 60)
|
37
|
+
entity_check.create_unscheduled_maintenance(timestamp, um_duration, :summary => event.summary)
|
39
38
|
|
40
|
-
@logger.debug("#{label} pass (unscheduled maintenance created for #{event.id})")
|
39
|
+
@logger.debug("#{label} pass (unscheduled maintenance created for #{event.id}, duration: #{um_duration})")
|
41
40
|
false
|
42
41
|
end
|
43
42
|
end
|
@@ -2,18 +2,18 @@ Hi <%= @contact_first_name %>
|
|
2
2
|
|
3
3
|
Monitoring has detected the following:
|
4
4
|
|
5
|
-
Entity:
|
6
|
-
Check:
|
7
|
-
State:
|
8
|
-
Summary:
|
5
|
+
Entity: <%= @entity_name %>
|
6
|
+
Check: <%= @check %>
|
7
|
+
State: <%= @state.upcase %>
|
8
|
+
Summary: <%= @summary %>
|
9
9
|
<% if @details -%>
|
10
|
-
Details:
|
10
|
+
Details: <%= @details %>
|
11
11
|
<% end -%>
|
12
12
|
<% if @time -%>
|
13
|
-
Time:
|
13
|
+
Time: <%= Time.at(@time.to_i).to_s %>
|
14
14
|
<% end -%>
|
15
15
|
<% if @duration && @duration > 40 -%>
|
16
|
-
Duration:
|
16
|
+
Duration: <%= ChronicDuration.output(@duration) %>
|
17
17
|
<% end -%>
|
18
18
|
<% if @last_state -%>
|
19
19
|
Previous State: <%= @last_state.upcase %>
|
@@ -244,7 +244,7 @@ module Flapjack
|
|
244
244
|
entity_check = get_entity_check(@entity, @check)
|
245
245
|
return 404 if entity_check.nil?
|
246
246
|
|
247
|
-
entity_check.end_unscheduled_maintenance
|
247
|
+
entity_check.end_unscheduled_maintenance(Time.now.to_i)
|
248
248
|
|
249
249
|
redirect back
|
250
250
|
end
|
@@ -403,9 +403,9 @@ module Flapjack
|
|
403
403
|
[:critical, :warning, :unknown, :recovery, :acknowledgement].inject({}) do |memo, type|
|
404
404
|
if last_notifications[type] && last_notifications[type][:timestamp]
|
405
405
|
t = Time.at(last_notifications[type][:timestamp])
|
406
|
-
memo[
|
407
|
-
|
408
|
-
|
406
|
+
memo[type] = {:time => t.to_s,
|
407
|
+
:relative => relative_time_ago(t) + " ago",
|
408
|
+
:summary => last_notifications[type][:summary]}
|
409
409
|
end
|
410
410
|
memo
|
411
411
|
end
|
data/lib/flapjack/notifier.rb
CHANGED
@@ -88,6 +88,8 @@ module Flapjack
|
|
88
88
|
# notification, updates the notification history in redis, generates the
|
89
89
|
# notifications
|
90
90
|
def process_notification(notification)
|
91
|
+
@logger.debug ("Processing notification: #{notification.inspect}")
|
92
|
+
|
91
93
|
timestamp = Time.now
|
92
94
|
event_id = notification.event_id
|
93
95
|
entity_check = Flapjack::Data::EntityCheck.for_event_id(event_id, :redis => @redis)
|
data/lib/flapjack/processor.rb
CHANGED
@@ -247,25 +247,21 @@ module Flapjack
|
|
247
247
|
|
248
248
|
severity = Flapjack::Data::Notification.severity_for_event(event, max_notified_severity)
|
249
249
|
|
250
|
-
historical_state = case entity_check.state
|
251
|
-
when previous_state
|
252
|
-
# current state
|
253
|
-
curr = entity_check.historical_states(nil, nil, :order => 'desc', :limit => 1)
|
254
|
-
(curr && (curr.size == 1)) ? curr.first : nil
|
255
|
-
else
|
256
|
-
# last state
|
257
|
-
curr_and_last = entity_check.historical_states(nil, nil, :order => 'desc', :limit => 2)
|
258
|
-
(curr_and_last && (curr_and_last.size == 2)) ? curr_and_last.last : nil
|
259
|
-
end
|
260
|
-
|
261
250
|
lc = entity_check.last_change
|
262
251
|
state_duration = lc ? (timestamp - lc) : nil
|
263
252
|
|
264
253
|
Flapjack::Data::Notification.add(@notifier_queue, event,
|
265
254
|
:type => notification_type, :severity => severity,
|
266
|
-
:last_state =>
|
255
|
+
:last_state => previous_unique_state(entity_check), :state_duration => state_duration,
|
267
256
|
:redis => @redis)
|
268
257
|
end
|
269
258
|
|
259
|
+
def previous_unique_state(entity_check)
|
260
|
+
hs = entity_check.historical_states(nil, nil, :order => 'desc', :limit => 2)
|
261
|
+
return { :last_state => nil, :last_summary => nil } unless hs.length == 2
|
262
|
+
return hs.last
|
263
|
+
end
|
264
|
+
|
270
265
|
end
|
271
266
|
end
|
267
|
+
|
data/lib/flapjack/version.rb
CHANGED
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.26
|
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-09-
|
14
|
+
date: 2013-09-16 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: dante
|
@@ -547,7 +547,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
547
547
|
version: '0'
|
548
548
|
segments:
|
549
549
|
- 0
|
550
|
-
hash:
|
550
|
+
hash: -187852671407725987
|
551
551
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
552
552
|
none: false
|
553
553
|
requirements:
|
@@ -556,7 +556,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
556
556
|
version: '0'
|
557
557
|
segments:
|
558
558
|
- 0
|
559
|
-
hash:
|
559
|
+
hash: -187852671407725987
|
560
560
|
requirements: []
|
561
561
|
rubyforge_project:
|
562
562
|
rubygems_version: 1.8.23
|