health-monitor-rails 8.0.0 → 8.1.0
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.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/health_monitor/configuration.rb +2 -3
- data/lib/health_monitor/providers/delayed_job.rb +48 -0
- data/lib/health_monitor/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45a2acf586e0293d542d08a5747ba0a824341726
|
4
|
+
data.tar.gz: 9fa6652ef77b8d2c1c330f57f3e4d85a7fe14867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0807e93a9b5582879d988e798408f8cdd66f94ae83fca0529e2e3ecae6fbf6c7c19d87e28849a9e5e211eab486515f00267ac1e7a005995ec548d1000913e85
|
7
|
+
data.tar.gz: fb0dcdab32f5854c6ae2b3e647b0c5010dc1a4f0ba349449b825cd6a54a946df5c647fd395e057c68d649f039feb227753f2af12ed169b21c8b849b68d625efd
|
data/README.md
CHANGED
@@ -120,6 +120,7 @@ The following services are currently supported:
|
|
120
120
|
* Redis
|
121
121
|
* Sidekiq
|
122
122
|
* Resque
|
123
|
+
* Delayed Job
|
123
124
|
|
124
125
|
## Configuration
|
125
126
|
|
@@ -131,6 +132,7 @@ HealthMonitor.configure do |config|
|
|
131
132
|
config.cache
|
132
133
|
config.redis
|
133
134
|
config.sidekiq
|
135
|
+
config.delayed_job
|
134
136
|
end
|
135
137
|
```
|
136
138
|
|
@@ -181,6 +183,10 @@ The currently supported settings are:
|
|
181
183
|
* `connection`: Use custom redis connection (e.g., `Redis.current`).
|
182
184
|
* `max_used_memory`: Set maximum expected memory usage of Redis in megabytes. Prevent memory leaks and keys overstore.
|
183
185
|
|
186
|
+
#### Delayed Job
|
187
|
+
|
188
|
+
* `queue_size`: the size (maximim) of a queue which is considered unhealthy (the default is 100).
|
189
|
+
|
184
190
|
### Adding a Custom Provider
|
185
191
|
It's also possible to add custom health check providers suited for your needs (of course, it's highly appreciated and encouraged if you'd contribute useful providers to the project).
|
186
192
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module HealthMonitor
|
2
2
|
class Configuration
|
3
|
-
PROVIDERS = %i[cache database redis resque sidekiq].freeze
|
3
|
+
PROVIDERS = %i[cache database delayed_job redis resque sidekiq].freeze
|
4
4
|
|
5
5
|
attr_accessor :error_callback, :basic_auth_credentials, :environment_variables
|
6
6
|
attr_reader :providers
|
@@ -16,8 +16,7 @@ module HealthMonitor
|
|
16
16
|
PROVIDERS.each do |provider_name|
|
17
17
|
define_method provider_name do |&_block|
|
18
18
|
require "health_monitor/providers/#{provider_name}"
|
19
|
-
|
20
|
-
add_provider("HealthMonitor::Providers::#{provider_name.capitalize}".constantize)
|
19
|
+
add_provider("HealthMonitor::Providers::#{provider_name.to_s.titleize.delete(' ')}".constantize)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'health_monitor/providers/base'
|
2
|
+
require 'delayed_job'
|
3
|
+
|
4
|
+
module HealthMonitor
|
5
|
+
module Providers
|
6
|
+
class DelayedJobException < StandardError; end
|
7
|
+
|
8
|
+
class DelayedJob < Base
|
9
|
+
class Configuration
|
10
|
+
DEFAULT_QUEUES_SIZE = 100
|
11
|
+
|
12
|
+
attr_accessor :queue_size
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@queue_size = DEFAULT_QUEUES_SIZE
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def check!
|
20
|
+
check_queue_size!
|
21
|
+
rescue Exception => e
|
22
|
+
raise DelayedJobException.new(e.message)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
class << self
|
28
|
+
private
|
29
|
+
|
30
|
+
def configuration_class
|
31
|
+
::HealthMonitor::Providers::DelayedJob::Configuration
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def check_queue_size!
|
36
|
+
size = job_class.count
|
37
|
+
|
38
|
+
return unless size > configuration.queue_size
|
39
|
+
|
40
|
+
raise "queue size #{size} is greater than #{configuration.queue_size}"
|
41
|
+
end
|
42
|
+
|
43
|
+
private def job_class
|
44
|
+
@job_class ||= ::Delayed::Job
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: health-monitor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Beder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: delayed_job_active_record
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.1'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.1'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: pry
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,6 +268,7 @@ files:
|
|
254
268
|
- lib/health_monitor/providers/base.rb
|
255
269
|
- lib/health_monitor/providers/cache.rb
|
256
270
|
- lib/health_monitor/providers/database.rb
|
271
|
+
- lib/health_monitor/providers/delayed_job.rb
|
257
272
|
- lib/health_monitor/providers/redis.rb
|
258
273
|
- lib/health_monitor/providers/resque.rb
|
259
274
|
- lib/health_monitor/providers/sidekiq.rb
|