solid_queue_guard 0.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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README.md +258 -0
  4. data/Rakefile +17 -0
  5. data/app/controllers/solid_queue_guard/application_controller.rb +6 -0
  6. data/app/controllers/solid_queue_guard/health_controller.rb +9 -0
  7. data/config/routes.rb +5 -0
  8. data/lib/generators/solid_queue_guard/install/USAGE +8 -0
  9. data/lib/generators/solid_queue_guard/install/install_generator.rb +17 -0
  10. data/lib/generators/solid_queue_guard/install/templates/solid_queue_guard.rb +17 -0
  11. data/lib/solid_queue_guard/check/result.rb +37 -0
  12. data/lib/solid_queue_guard/checks/base.rb +52 -0
  13. data/lib/solid_queue_guard/checks/config/adapter_check.rb +23 -0
  14. data/lib/solid_queue_guard/checks/config/connects_to_check.rb +38 -0
  15. data/lib/solid_queue_guard/checks/config/env_flags_check.rb +21 -0
  16. data/lib/solid_queue_guard/checks/config/process_heartbeat_config_check.rb +30 -0
  17. data/lib/solid_queue_guard/checks/config/puma_colocated_check.rb +33 -0
  18. data/lib/solid_queue_guard/checks/config/queue_database_check.rb +24 -0
  19. data/lib/solid_queue_guard/checks/config/queue_schema_check.rb +23 -0
  20. data/lib/solid_queue_guard/checks/config/scheduler_config_check.rb +32 -0
  21. data/lib/solid_queue_guard/checks/config/thread_pool_check.rb +38 -0
  22. data/lib/solid_queue_guard/checks/config/worker_coverage_check.rb +51 -0
  23. data/lib/solid_queue_guard/checks/registry.rb +48 -0
  24. data/lib/solid_queue_guard/checks/runtime/base.rb +21 -0
  25. data/lib/solid_queue_guard/checks/runtime/blocked_jobs_check.rb +9 -0
  26. data/lib/solid_queue_guard/checks/runtime/dispatcher_check.rb +9 -0
  27. data/lib/solid_queue_guard/checks/runtime/failed_jobs_check.rb +9 -0
  28. data/lib/solid_queue_guard/checks/runtime/finished_jobs_growth_check.rb +9 -0
  29. data/lib/solid_queue_guard/checks/runtime/orphaned_claims_check.rb +9 -0
  30. data/lib/solid_queue_guard/checks/runtime/paused_queue_lag_check.rb +9 -0
  31. data/lib/solid_queue_guard/checks/runtime/pidfile_check.rb +9 -0
  32. data/lib/solid_queue_guard/checks/runtime/process_topology_check.rb +9 -0
  33. data/lib/solid_queue_guard/checks/runtime/queue_lag_check.rb +9 -0
  34. data/lib/solid_queue_guard/checks/runtime/recurring_stale_check.rb +9 -0
  35. data/lib/solid_queue_guard/checks/runtime/scheduled_backlog_check.rb +9 -0
  36. data/lib/solid_queue_guard/checks/runtime/stale_process_check.rb +9 -0
  37. data/lib/solid_queue_guard/cli.rb +55 -0
  38. data/lib/solid_queue_guard/configuration.rb +33 -0
  39. data/lib/solid_queue_guard/engine.rb +21 -0
  40. data/lib/solid_queue_guard/formatters/json.rb +20 -0
  41. data/lib/solid_queue_guard/formatters/terminal.rb +43 -0
  42. data/lib/solid_queue_guard/notifiers/base.rb +17 -0
  43. data/lib/solid_queue_guard/queue_coverage.rb +37 -0
  44. data/lib/solid_queue_guard/report.rb +44 -0
  45. data/lib/solid_queue_guard/runner.rb +47 -0
  46. data/lib/solid_queue_guard/tasks.rb +39 -0
  47. data/lib/solid_queue_guard/version.rb +5 -0
  48. data/lib/solid_queue_guard.rb +38 -0
  49. metadata +346 -0
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidQueueGuard
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'solid_queue_guard/version'
4
+ require 'solid_queue_guard/engine'
5
+
6
+ require 'active_support'
7
+ require 'active_support/core_ext/numeric/time'
8
+ require 'zeitwerk'
9
+
10
+ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
11
+ loader.inflector.inflect('cli' => 'CLI')
12
+ loader.ignore("#{__dir__}/solid_queue_guard/tasks.rb")
13
+ loader.ignore("#{__dir__}/generators")
14
+ loader.setup
15
+
16
+ module SolidQueueGuard
17
+ class << self
18
+ attr_accessor :configuration
19
+
20
+ def deprecator
21
+ @deprecator ||= ActiveSupport::Deprecation.new('0.2', 'SolidQueueGuard')
22
+ end
23
+
24
+ def configure
25
+ self.configuration ||= Configuration.new
26
+ yield(configuration) if block_given?
27
+ configuration
28
+ end
29
+
30
+ def config
31
+ configuration || configure
32
+ end
33
+
34
+ def enabled?
35
+ config.enabled
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,346 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solid_queue_guard
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rafael Pissardo
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: actionpack
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: activejob
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '7.1'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '9.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '7.1'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '9.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: activerecord
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '7.1'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '9.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '7.1'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '9.0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: activesupport
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '7.1'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '9.0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '7.1'
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '9.0'
92
+ - !ruby/object:Gem::Dependency
93
+ name: railties
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '7.1'
99
+ - - "<"
100
+ - !ruby/object:Gem::Version
101
+ version: '9.0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '7.1'
109
+ - - "<"
110
+ - !ruby/object:Gem::Version
111
+ version: '9.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: solid_queue
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '1.0'
119
+ - - "<"
120
+ - !ruby/object:Gem::Version
121
+ version: '2.0'
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '1.0'
129
+ - - "<"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.0'
132
+ - !ruby/object:Gem::Dependency
133
+ name: appraisal
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2.5'
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.5'
146
+ - !ruby/object:Gem::Dependency
147
+ name: debug
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: minitest
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '5.0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '5.0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: mocha
176
+ requirement: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '2.1'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '2.1'
188
+ - !ruby/object:Gem::Dependency
189
+ name: puma
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '6.0'
195
+ type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '6.0'
202
+ - !ruby/object:Gem::Dependency
203
+ name: rails
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '7.1'
209
+ - - "<"
210
+ - !ruby/object:Gem::Version
211
+ version: '9.0'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '7.1'
219
+ - - "<"
220
+ - !ruby/object:Gem::Version
221
+ version: '9.0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rubocop
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.75'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '1.75'
236
+ - !ruby/object:Gem::Dependency
237
+ name: rubocop-rails
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '2.30'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '2.30'
250
+ - !ruby/object:Gem::Dependency
251
+ name: sqlite3
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '2.1'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '2.1'
264
+ description: Detect queue lag, dead workers, unsafe thread/pool configuration, and
265
+ broken recurring jobs before they become incidents.
266
+ email:
267
+ - rpissardo@users.noreply.github.com
268
+ executables: []
269
+ extensions: []
270
+ extra_rdoc_files: []
271
+ files:
272
+ - MIT-LICENSE
273
+ - README.md
274
+ - Rakefile
275
+ - app/controllers/solid_queue_guard/application_controller.rb
276
+ - app/controllers/solid_queue_guard/health_controller.rb
277
+ - config/routes.rb
278
+ - lib/generators/solid_queue_guard/install/USAGE
279
+ - lib/generators/solid_queue_guard/install/install_generator.rb
280
+ - lib/generators/solid_queue_guard/install/templates/solid_queue_guard.rb
281
+ - lib/solid_queue_guard.rb
282
+ - lib/solid_queue_guard/check/result.rb
283
+ - lib/solid_queue_guard/checks/base.rb
284
+ - lib/solid_queue_guard/checks/config/adapter_check.rb
285
+ - lib/solid_queue_guard/checks/config/connects_to_check.rb
286
+ - lib/solid_queue_guard/checks/config/env_flags_check.rb
287
+ - lib/solid_queue_guard/checks/config/process_heartbeat_config_check.rb
288
+ - lib/solid_queue_guard/checks/config/puma_colocated_check.rb
289
+ - lib/solid_queue_guard/checks/config/queue_database_check.rb
290
+ - lib/solid_queue_guard/checks/config/queue_schema_check.rb
291
+ - lib/solid_queue_guard/checks/config/scheduler_config_check.rb
292
+ - lib/solid_queue_guard/checks/config/thread_pool_check.rb
293
+ - lib/solid_queue_guard/checks/config/worker_coverage_check.rb
294
+ - lib/solid_queue_guard/checks/registry.rb
295
+ - lib/solid_queue_guard/checks/runtime/base.rb
296
+ - lib/solid_queue_guard/checks/runtime/blocked_jobs_check.rb
297
+ - lib/solid_queue_guard/checks/runtime/dispatcher_check.rb
298
+ - lib/solid_queue_guard/checks/runtime/failed_jobs_check.rb
299
+ - lib/solid_queue_guard/checks/runtime/finished_jobs_growth_check.rb
300
+ - lib/solid_queue_guard/checks/runtime/orphaned_claims_check.rb
301
+ - lib/solid_queue_guard/checks/runtime/paused_queue_lag_check.rb
302
+ - lib/solid_queue_guard/checks/runtime/pidfile_check.rb
303
+ - lib/solid_queue_guard/checks/runtime/process_topology_check.rb
304
+ - lib/solid_queue_guard/checks/runtime/queue_lag_check.rb
305
+ - lib/solid_queue_guard/checks/runtime/recurring_stale_check.rb
306
+ - lib/solid_queue_guard/checks/runtime/scheduled_backlog_check.rb
307
+ - lib/solid_queue_guard/checks/runtime/stale_process_check.rb
308
+ - lib/solid_queue_guard/cli.rb
309
+ - lib/solid_queue_guard/configuration.rb
310
+ - lib/solid_queue_guard/engine.rb
311
+ - lib/solid_queue_guard/formatters/json.rb
312
+ - lib/solid_queue_guard/formatters/terminal.rb
313
+ - lib/solid_queue_guard/notifiers/base.rb
314
+ - lib/solid_queue_guard/queue_coverage.rb
315
+ - lib/solid_queue_guard/report.rb
316
+ - lib/solid_queue_guard/runner.rb
317
+ - lib/solid_queue_guard/tasks.rb
318
+ - lib/solid_queue_guard/version.rb
319
+ homepage: https://github.com/rafael-pissardo/solid_queue_guard
320
+ licenses:
321
+ - MIT
322
+ metadata:
323
+ homepage_uri: https://github.com/rafael-pissardo/solid_queue_guard
324
+ source_code_uri: https://github.com/rafael-pissardo/solid_queue_guard
325
+ changelog_uri: https://github.com/rafael-pissardo/solid_queue_guard/blob/main/CHANGELOG.md
326
+ bug_tracker_uri: https://github.com/rafael-pissardo/solid_queue_guard/issues
327
+ documentation_uri: https://github.com/rafael-pissardo/solid_queue_guard#readme
328
+ rubygems_mfa_required: 'true'
329
+ rdoc_options: []
330
+ require_paths:
331
+ - lib
332
+ required_ruby_version: !ruby/object:Gem::Requirement
333
+ requirements:
334
+ - - ">="
335
+ - !ruby/object:Gem::Version
336
+ version: '3.1'
337
+ required_rubygems_version: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ">="
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ requirements: []
343
+ rubygems_version: 3.6.9
344
+ specification_version: 4
345
+ summary: Production readiness checks and runtime guards for Rails Solid Queue.
346
+ test_files: []