flapjack 0.7.10 → 0.7.11
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/CHANGELOG.md +4 -0
- data/bin/simulate-failed-check +10 -5
- data/features/events.feature +27 -1
- data/lib/flapjack/data/entity_check.rb +1 -2
- data/lib/flapjack/gateways/jabber.rb +1 -1
- data/lib/flapjack/version.rb +1 -1
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
## Flapjack Changelog
|
2
2
|
|
3
|
+
# 0.7.11 - 2013-06-11
|
4
|
+
- Bug: unknown events not fully treated as problems - no notification delay blocking (second swing) gh-154 (@jessereynolds)
|
5
|
+
- Bug: correct jabber alias in example acknowledgement strings (second swing) gh-189 (@jessereynolds)
|
6
|
+
|
3
7
|
# 0.7.10 - 2013-06-05
|
4
8
|
- Bug: unknown events not fully treated as problems - no notification delay blocking gh-154 (@jessereynolds)
|
5
9
|
|
data/bin/simulate-failed-check
CHANGED
@@ -26,17 +26,18 @@ def fail(opts)
|
|
26
26
|
redis = Redis.new(opts[:redis_options])
|
27
27
|
stop_after = opts[:minutes].to_i * 60
|
28
28
|
recover = opts[:recover]
|
29
|
+
state = opts[:state] || 'critical'
|
29
30
|
event = {
|
30
31
|
'entity' => opts[:entity] || 'foo-app-01',
|
31
32
|
'check' => opts[:check] || 'HTTP',
|
32
33
|
'type' => 'service',
|
33
34
|
'timestamp' => Time.now.to_i
|
34
35
|
}
|
35
|
-
failure = event.merge('state' =>
|
36
|
-
recovery = event.merge('state' => 'ok',
|
36
|
+
failure = event.merge('state' => state, 'summary' => 'Simulated check output (test by operator)')
|
37
|
+
recovery = event.merge('state' => 'ok', 'summary' => 'Simulated check output (test by operator)')
|
37
38
|
key = "#{event['entity']}:#{event['check']}"
|
38
39
|
|
39
|
-
puts "#{Time.now}: sending failure event for #{key}"
|
40
|
+
puts "#{Time.now}: sending failure event (#{state}) for #{key}"
|
40
41
|
send_event(failure, :redis => redis)
|
41
42
|
|
42
43
|
EM.run {
|
@@ -51,7 +52,7 @@ def fail(opts)
|
|
51
52
|
end
|
52
53
|
|
53
54
|
EM.add_periodic_timer(10) do
|
54
|
-
puts "#{Time.now}: sending failure event for #{key}"
|
55
|
+
puts "#{Time.now}: sending failure event (#{state}) for #{key}"
|
55
56
|
send_event(failure, :redis => redis)
|
56
57
|
end
|
57
58
|
|
@@ -92,6 +93,10 @@ optparse = OptionParser.new do |opts|
|
|
92
93
|
options.check = k
|
93
94
|
end
|
94
95
|
|
96
|
+
opts.on("-s", "--state STATE", String, "optional STATE to generate failure events with ('CRITICAL')") do |s|
|
97
|
+
options.state = s
|
98
|
+
end
|
99
|
+
|
95
100
|
end
|
96
101
|
optparse.parse!(ARGV)
|
97
102
|
|
@@ -125,7 +130,7 @@ if config_env.nil? || config_env.empty?
|
|
125
130
|
end
|
126
131
|
|
127
132
|
options = {:redis_options => redis_options, :minutes => options.minutes,
|
128
|
-
:entity => options.entity, :check => options.check}
|
133
|
+
:entity => options.entity, :check => options.check, :state => options.state}
|
129
134
|
case ARGV[0]
|
130
135
|
when "fail-and-recover"
|
131
136
|
fail(options.merge(:recover => true))
|
data/features/events.feature
CHANGED
@@ -189,7 +189,12 @@ Feature: events
|
|
189
189
|
@time
|
190
190
|
Scenario: Quick stream of unknown
|
191
191
|
Given the check is in an ok state
|
192
|
-
When
|
192
|
+
When a critical event is received
|
193
|
+
And 1 minute passes
|
194
|
+
And a critical event is received
|
195
|
+
Then a notification should be generated
|
196
|
+
When 10 minutes passes
|
197
|
+
And an unknown event is received
|
193
198
|
Then a notification should not be generated
|
194
199
|
When 60 seconds passes
|
195
200
|
And an unknown event is received
|
@@ -203,6 +208,27 @@ Feature: events
|
|
203
208
|
When 10 seconds passes
|
204
209
|
And an unknown event is received
|
205
210
|
Then a notification should not be generated
|
211
|
+
When 10 seconds passes
|
212
|
+
And an unknown event is received
|
213
|
+
Then a notification should not be generated
|
214
|
+
When 10 seconds passes
|
215
|
+
And an unknown event is received
|
216
|
+
Then a notification should not be generated
|
217
|
+
When 10 seconds passes
|
218
|
+
And an unknown event is received
|
219
|
+
Then a notification should not be generated
|
220
|
+
When 5 minutes passes
|
221
|
+
And an unknown event is received
|
222
|
+
Then a notification should be generated
|
223
|
+
When 10 seconds passes
|
224
|
+
And an unknown event is received
|
225
|
+
Then a notification should not be generated
|
226
|
+
When 10 seconds passes
|
227
|
+
And an unknown event is received
|
228
|
+
Then a notification should not be generated
|
229
|
+
When 10 seconds passes
|
230
|
+
And an unknown event is received
|
231
|
+
Then a notification should not be generated
|
206
232
|
|
207
233
|
@time
|
208
234
|
Scenario: Flapper (down for one minute, up for one minute, repeat)
|
@@ -305,8 +305,7 @@ module Flapjack
|
|
305
305
|
end
|
306
306
|
|
307
307
|
def last_notifications_of_each_type
|
308
|
-
ln = {:
|
309
|
-
:warning => last_warning_notification,
|
308
|
+
ln = {:warning => last_warning_notification,
|
310
309
|
:critical => last_critical_notification,
|
311
310
|
:unknown => last_unknown_notification,
|
312
311
|
:recovery => last_recovery_notification,
|
@@ -368,7 +368,7 @@ module Flapjack
|
|
368
368
|
!state.eql?('ok') &&
|
369
369
|
!'acknowledgement'.eql?(type) &&
|
370
370
|
!'test'.eql?(type) ?
|
371
|
-
":::
|
371
|
+
"::: #{@config['alias']}: ACKID #{event['event_count']} " : ''
|
372
372
|
|
373
373
|
type = 'unknown' unless type
|
374
374
|
|
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.11
|
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-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: dante
|
@@ -553,7 +553,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
553
553
|
version: '0'
|
554
554
|
segments:
|
555
555
|
- 0
|
556
|
-
hash:
|
556
|
+
hash: -3678389315543447731
|
557
557
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
558
558
|
none: false
|
559
559
|
requirements:
|
@@ -562,7 +562,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
562
562
|
version: '0'
|
563
563
|
segments:
|
564
564
|
- 0
|
565
|
-
hash:
|
565
|
+
hash: -3678389315543447731
|
566
566
|
requirements: []
|
567
567
|
rubyforge_project:
|
568
568
|
rubygems_version: 1.8.23
|