health-monitor-rails 0.1.7 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/health_monitor/providers/sidekiq.rb +10 -0
- data/lib/health_monitor/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 470d09cb0970220d2f42794b29582934612c7569
|
4
|
+
data.tar.gz: f33ecb0679d589276b86cea0a8c02e111d176402
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1670e32b8462fcfc6b1652e3c5bf987c15fc064b854d7079088f58f703da591838ecc45ebafb643438a350d1b297737b79523fefb6d6a564497c34b6cdf34de2
|
7
|
+
data.tar.gz: 6718bc74071f777ef4e46e35f7a1df7d9328355821659450578165cd57a927b8cfc38bdc0aa48d34ec40477bb14ae1fb76bf7526fa8a604f828aad2b98d4f386
|
@@ -3,21 +3,31 @@ require 'sidekiq/api'
|
|
3
3
|
|
4
4
|
module HealthMonitor
|
5
5
|
module Providers
|
6
|
+
LATENCY_TIMEOUT = 30.freeze
|
7
|
+
|
6
8
|
class SidekiqException < StandardError; end
|
7
9
|
|
8
10
|
class Sidekiq < Base
|
9
11
|
def check!
|
10
12
|
check_workers!
|
13
|
+
check_latency!
|
11
14
|
check_redis!
|
12
15
|
rescue Exception => e
|
13
16
|
raise SidekiqException.new(e.message)
|
14
17
|
end
|
15
18
|
|
16
19
|
private
|
20
|
+
|
17
21
|
def check_workers!
|
18
22
|
::Sidekiq::Workers.new.size
|
19
23
|
end
|
20
24
|
|
25
|
+
def check_latency!
|
26
|
+
latency = ::Sidekiq::Queue.new.latency
|
27
|
+
|
28
|
+
raise "latency #{latency} is greater than #{LATENCY_TIMEOUT}" if latency > LATENCY_TIMEOUT
|
29
|
+
end
|
30
|
+
|
21
31
|
def check_redis!
|
22
32
|
::Sidekiq.redis { |conn| conn.info }
|
23
33
|
end
|