sensu 0.11.0.beta.4 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -1
- data/lib/sensu/api.rb +9 -8
- data/lib/sensu/constants.rb +1 -1
- data/lib/sensu/extensions.rb +1 -1
- data/lib/sensu/rabbitmq.rb +6 -0
- data/lib/sensu/server.rb +13 -20
- data/lib/sensu/settings.rb +3 -1
- metadata +8 -12
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
## 0.11.0 -
|
1
|
+
## 0.11.0 - 2013-10-02
|
2
2
|
|
3
3
|
### Non-backwards compatible changes
|
4
4
|
|
@@ -26,6 +26,9 @@ You can configure the Sensu client socket (UDP & TCP), bind & port, eg.
|
|
26
26
|
|
27
27
|
Handlers & mutators can now have a timeout, in seconds.
|
28
28
|
|
29
|
+
You can configure the RabbitMQ channel prefetch value (advanced), eg.
|
30
|
+
"rabbitmq": { "prefetch": 100 }.
|
31
|
+
|
29
32
|
### Other
|
30
33
|
|
31
34
|
Sensu passes a dup of event data to mutator & handler extensions to
|
data/lib/sensu/api.rb
CHANGED
@@ -356,15 +356,16 @@ module Sensu
|
|
356
356
|
$logger.info('deleting client', {
|
357
357
|
:client => client
|
358
358
|
})
|
359
|
-
$redis.srem('clients', client_name)
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
359
|
+
$redis.srem('clients', client_name) do
|
360
|
+
$redis.del('client:' + client_name)
|
361
|
+
$redis.del('events:' + client_name)
|
362
|
+
$redis.smembers('history:' + client_name) do |checks|
|
363
|
+
checks.each do |check_name|
|
364
|
+
$redis.del('history:' + client_name + ':' + check_name)
|
365
|
+
$redis.del('execution:' + client_name + ':' + check_name)
|
366
|
+
end
|
367
|
+
$redis.del('history:' + client_name)
|
366
368
|
end
|
367
|
-
$redis.del('history:' + client_name)
|
368
369
|
end
|
369
370
|
end
|
370
371
|
issued!
|
data/lib/sensu/constants.rb
CHANGED
data/lib/sensu/extensions.rb
CHANGED
data/lib/sensu/rabbitmq.rb
CHANGED
@@ -77,9 +77,15 @@ module Sensu
|
|
77
77
|
error = RabbitMQError.new('rabbitmq channel closed')
|
78
78
|
@on_error.call(error)
|
79
79
|
end
|
80
|
+
prefetch = 1
|
81
|
+
if options.is_a?(Hash)
|
82
|
+
prefetch = options[:prefetch] || 1
|
83
|
+
end
|
80
84
|
@channel.on_recovery do
|
81
85
|
@after_reconnect.call
|
86
|
+
@channel.prefetch(prefetch)
|
82
87
|
end
|
88
|
+
@channel.prefetch(prefetch)
|
83
89
|
end
|
84
90
|
|
85
91
|
def connected?
|
data/lib/sensu/server.rb
CHANGED
@@ -72,11 +72,9 @@ module Sensu
|
|
72
72
|
end
|
73
73
|
@rabbitmq.after_reconnect do
|
74
74
|
@logger.info('reconnected to rabbitmq')
|
75
|
-
@amq.prefetch(1)
|
76
75
|
resume
|
77
76
|
end
|
78
77
|
@amq = @rabbitmq.channel
|
79
|
-
@amq.prefetch(1)
|
80
78
|
end
|
81
79
|
|
82
80
|
def setup_keepalives(&block)
|
@@ -571,35 +569,30 @@ module Sensu
|
|
571
569
|
unless client_json.nil?
|
572
570
|
client = Oj.load(client_json)
|
573
571
|
check = {
|
574
|
-
:
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
thresholds = {
|
579
|
-
:warning => 120,
|
580
|
-
:critical => 180
|
572
|
+
:thresholds => {
|
573
|
+
:warning => 120,
|
574
|
+
:critical => 180
|
575
|
+
}
|
581
576
|
}
|
582
577
|
if client.has_key?(:keepalive)
|
583
|
-
|
584
|
-
check[:handlers] = Array(client[:keepalive][:handlers] || client[:keepalive][:handler])
|
585
|
-
end
|
586
|
-
if client[:keepalive].has_key?(:thresholds)
|
587
|
-
thresholds.merge!(client[:keepalive][:thresholds])
|
588
|
-
end
|
578
|
+
check = deep_merge(check, client[:keepalive])
|
589
579
|
end
|
580
|
+
check[:name] = 'keepalive'
|
581
|
+
check[:issued] = Time.now.to_i
|
582
|
+
check[:executed] = Time.now.to_i
|
590
583
|
time_since_last_keepalive = Time.now.to_i - client[:timestamp]
|
591
584
|
case
|
592
|
-
when time_since_last_keepalive >= thresholds[:critical]
|
585
|
+
when time_since_last_keepalive >= check[:thresholds][:critical]
|
593
586
|
check[:output] = 'No keep-alive sent from client in over '
|
594
|
-
check[:output] << thresholds[:critical].to_s + ' seconds'
|
587
|
+
check[:output] << check[:thresholds][:critical].to_s + ' seconds'
|
595
588
|
check[:status] = 2
|
596
|
-
when time_since_last_keepalive >= thresholds[:warning]
|
589
|
+
when time_since_last_keepalive >= check[:thresholds][:warning]
|
597
590
|
check[:output] = 'No keep-alive sent from client in over '
|
598
|
-
check[:output] << thresholds[:warning].to_s + ' seconds'
|
591
|
+
check[:output] << check[:thresholds][:warning].to_s + ' seconds'
|
599
592
|
check[:status] = 1
|
600
593
|
else
|
601
594
|
check[:output] = 'Keep-alive sent from client less than '
|
602
|
-
check[:output] << thresholds[:warning].to_s + ' seconds ago'
|
595
|
+
check[:output] << check[:thresholds][:warning].to_s + ' seconds ago'
|
603
596
|
check[:status] = 0
|
604
597
|
end
|
605
598
|
publish_result(client, check)
|
data/lib/sensu/settings.rb
CHANGED
@@ -439,10 +439,12 @@ module Sensu
|
|
439
439
|
unless thresholds.is_a?(Hash)
|
440
440
|
invalid('client keepalive thresholds must be a hash')
|
441
441
|
end
|
442
|
-
if thresholds.has_key?(:warning)
|
442
|
+
if thresholds.has_key?(:warning)
|
443
443
|
unless thresholds[:warning].is_a?(Integer)
|
444
444
|
invalid('client keepalive warning threshold must be an integer')
|
445
445
|
end
|
446
|
+
end
|
447
|
+
if thresholds.has_key?(:critical)
|
446
448
|
unless thresholds[:critical].is_a?(Integer)
|
447
449
|
invalid('client keepalive critical threshold must be an integer')
|
448
450
|
end
|
metadata
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 51
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 11
|
9
9
|
- 0
|
10
|
-
|
11
|
-
- 4
|
12
|
-
version: 0.11.0.beta.4
|
10
|
+
version: 0.11.0
|
13
11
|
platform: ruby
|
14
12
|
authors:
|
15
13
|
- Sean Porter
|
@@ -18,7 +16,7 @@ autorequire:
|
|
18
16
|
bindir: bin
|
19
17
|
cert_chain: []
|
20
18
|
|
21
|
-
date: 2013-
|
19
|
+
date: 2013-10-02 00:00:00 -07:00
|
22
20
|
default_executable:
|
23
21
|
dependencies:
|
24
22
|
- !ruby/object:Gem::Dependency
|
@@ -235,14 +233,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
233
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
234
|
none: false
|
237
235
|
requirements:
|
238
|
-
- - "
|
236
|
+
- - ">="
|
239
237
|
- !ruby/object:Gem::Version
|
240
|
-
hash:
|
238
|
+
hash: 3
|
241
239
|
segments:
|
242
|
-
-
|
243
|
-
|
244
|
-
- 1
|
245
|
-
version: 1.3.1
|
240
|
+
- 0
|
241
|
+
version: "0"
|
246
242
|
requirements: []
|
247
243
|
|
248
244
|
rubyforge_project:
|