sidekiq-process-health-check 0.0.6
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 +7 -0
- data/Rakefile +17 -0
- data/app/controllers/concerns/sidekiq/process_health/check/application_controller.rb +11 -0
- data/app/controllers/concerns/sidekiq/process_health/check/controller.rb +35 -0
- data/app/controllers/concerns/sidekiq/process_health/check/mountable_controller.rb +10 -0
- data/config/locales/en.yml +7 -0
- data/config/routes.rb +4 -0
- data/lib/sidekiq/process_health/check.rb +43 -0
- data/lib/sidekiq/process_health/check/configuration.rb +18 -0
- data/lib/sidekiq/process_health/check/engine.rb +10 -0
- data/lib/sidekiq/process_health/check/version.rb +7 -0
- metadata +238 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b2ab7bc6b5a45bba9a808f418dfb80da5cdf933a
|
4
|
+
data.tar.gz: 0fe587a50f012a909e7939736ce2316ddfe1be53
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9fe37bacd7d3f45dcf6ffbc69b96afeb418cac0fbbf2a8acf9096fc08a37d90de443af61876118af6f128023450ef8160c13046974c7796ae8f768386ad32ef7
|
7
|
+
data.tar.gz: a704b4793ffbdaa0295186382719b12b79f46b039765682e1cb5457533d784a00e68471e9cc1093ea60fec5d5617482e59679dc54a8e5b57af6c66ed9305fe78
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
8
|
+
load 'rails/tasks/engine.rake'
|
9
|
+
|
10
|
+
|
11
|
+
load 'rails/tasks/statistics.rake'
|
12
|
+
|
13
|
+
Bundler::GemHelper.install_tasks
|
14
|
+
|
15
|
+
require 'rspec/core/rake_task'
|
16
|
+
task :default => :spec
|
17
|
+
RSpec::Core::RakeTask.new
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Sidekiq
|
2
|
+
module ProcessHealth
|
3
|
+
module Check
|
4
|
+
class ApplicationController < ActionController::Base
|
5
|
+
# Prevent CSRF attacks by raising an exception.
|
6
|
+
# For APIs, you may want to use :null_session instead.
|
7
|
+
protect_from_forgery with: :exception
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Sidekiq
|
2
|
+
module ProcessHealth
|
3
|
+
module Check
|
4
|
+
module Controller
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
include Sidekiq::ProcessHealth::Check
|
7
|
+
|
8
|
+
def show
|
9
|
+
render plain: [process_status, queue_status]
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def process_status
|
14
|
+
process_size = number_of_active_processes
|
15
|
+
process_size_details = t('process_size', process_size: process_size, max_process_size: Sidekiq::ProcessHealth::Check.configuration.expected_number_of_processes)
|
16
|
+
if process_size == Sidekiq::ProcessHealth::Check.configuration.expected_number_of_processes
|
17
|
+
t('ok', message: process_size_details)
|
18
|
+
else
|
19
|
+
t('warning.unexpected_number_of_processes', message: process_size_details)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def queue_status
|
24
|
+
queue_size = number_of_enqueued_jobs
|
25
|
+
queue_size_details = t('queue_size', queue_size: queue_size, job_threshold: Sidekiq::ProcessHealth::Check.configuration.job_threshold)
|
26
|
+
if queue_size < Sidekiq::ProcessHealth::Check.configuration.job_threshold
|
27
|
+
t('ok', message: queue_size_details)
|
28
|
+
else
|
29
|
+
t('warning.too_many_jobs_enqueued', message: queue_size_details)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
en:
|
2
|
+
process_size: "Process size: %{process_size} / %{max_process_size}"
|
3
|
+
queue_size: "Queue size: %{queue_size} / %{job_threshold}"
|
4
|
+
ok: "OK. %{message}"
|
5
|
+
warning:
|
6
|
+
too_many_jobs_enqueued: "WARNING. Too many jobs enqueued. %{message}"
|
7
|
+
unexpected_number_of_processes: "WARNING. Unexpected number of processes. %{message}"
|
data/config/routes.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'sidekiq/process_health/check/version'
|
2
|
+
require 'sidekiq/process_health/check/engine'
|
3
|
+
require 'sidekiq/process_health/check/configuration'
|
4
|
+
require 'sidekiq/api'
|
5
|
+
|
6
|
+
module Sidekiq
|
7
|
+
module ProcessHealth
|
8
|
+
module Check
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_writer :configuration
|
12
|
+
|
13
|
+
def configuration
|
14
|
+
@configuration ||= Configuration.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def reset
|
18
|
+
@configuration = Configuration.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def configure
|
22
|
+
yield(configuration)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def number_of_active_processes
|
27
|
+
retrieve_active_processes.size
|
28
|
+
end
|
29
|
+
|
30
|
+
def number_of_enqueued_jobs
|
31
|
+
Sidekiq::Queue.new.size
|
32
|
+
end
|
33
|
+
|
34
|
+
def retrieve_active_processes
|
35
|
+
processes = []
|
36
|
+
Sidekiq::ProcessSet.new.each do |process|
|
37
|
+
processes << process
|
38
|
+
end
|
39
|
+
processes
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Sidekiq
|
2
|
+
module ProcessHealth
|
3
|
+
module Check
|
4
|
+
class Configuration
|
5
|
+
DEFAULT_EXPECTED_PROCESS_NUMBER = 1
|
6
|
+
|
7
|
+
DEFAULT_JOB_THRESHOLD = 50
|
8
|
+
|
9
|
+
attr_accessor :expected_number_of_processes, :job_threshold
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@expected_number_of_processes = DEFAULT_EXPECTED_PROCESS_NUMBER
|
13
|
+
@job_threshold = DEFAULT_JOB_THRESHOLD
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sidekiq-process-health-check
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- isuPatches
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: responders
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sidekiq
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: capybara
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: capybara-webkit
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: codeclimate-test-reporter
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.0.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.0.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: launchy
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: listen
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec-rails
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sqlite3
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: sidekiq
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '4'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '4'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: simplecov
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: webmock
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
description: A gem that when configured and used properly will provide a page displaying
|
196
|
+
if the sidekiq processes are within expected operating parameters
|
197
|
+
email:
|
198
|
+
- isuPatches@yahoo.com
|
199
|
+
executables: []
|
200
|
+
extensions: []
|
201
|
+
extra_rdoc_files: []
|
202
|
+
files:
|
203
|
+
- Rakefile
|
204
|
+
- app/controllers/concerns/sidekiq/process_health/check/application_controller.rb
|
205
|
+
- app/controllers/concerns/sidekiq/process_health/check/controller.rb
|
206
|
+
- app/controllers/concerns/sidekiq/process_health/check/mountable_controller.rb
|
207
|
+
- config/locales/en.yml
|
208
|
+
- config/routes.rb
|
209
|
+
- lib/sidekiq/process_health/check.rb
|
210
|
+
- lib/sidekiq/process_health/check/configuration.rb
|
211
|
+
- lib/sidekiq/process_health/check/engine.rb
|
212
|
+
- lib/sidekiq/process_health/check/version.rb
|
213
|
+
homepage: https://github.com/isuPatches/sidekiq-process-health-check
|
214
|
+
licenses:
|
215
|
+
- MIT
|
216
|
+
metadata: {}
|
217
|
+
post_install_message:
|
218
|
+
rdoc_options: []
|
219
|
+
require_paths:
|
220
|
+
- lib
|
221
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - ">="
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '0'
|
226
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - ">="
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
requirements: []
|
232
|
+
rubyforge_project:
|
233
|
+
rubygems_version: 2.6.10
|
234
|
+
signing_key:
|
235
|
+
specification_version: 4
|
236
|
+
summary: A gem that when configured and used properly will provide a page displaying
|
237
|
+
if the sidekiq processes are within expected operating parameters
|
238
|
+
test_files: []
|