solid_queue_guard 1.1.3 → 1.1.4
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 45e502d91550c641928112f20c22aa917b5c9b4e8c315730503aa6d5e2f10532
|
|
4
|
+
data.tar.gz: bff2f2dd6c6fce14ead0b7f43a97635c6184abb5c6585a07673fcf502771f2ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 942e9c4f60fe1eb30dd9a00fa4bb38e150c5fd964dac066429b1f805c448e470d12520da606218a4a163aa44f8cf52176f60b44de25a899e8e900530aee165d1
|
|
7
|
+
data.tar.gz: 539c14d133e1fa5d02d1407e3b951ca2565382f16a36dba34a895ee7ff44b5e7d0ee80165c0d91b0a2bf5c1ee50a3691429b1619f5a0f8e8949804378fec8526
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.4] - 2026-07-10
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Mission Control Guard tab now uses application-scoped URLs (`/applications/:application_id/guard`) with the engine mount prefix and `server_id`, matching Queues, Workers, and Recurring tasks navigation
|
|
13
|
+
|
|
8
14
|
## [1.1.3] - 2026-07-09
|
|
9
15
|
|
|
10
16
|
### Fixed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -1,19 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://img.shields.io/gem/v/solid_queue_guard?style=for-the-badge" alt="Gem Version">
|
|
3
|
+
<img src="https://img.shields.io/badge/Ruby-3.1%2B-red?style=for-the-badge&logo=ruby" alt="Ruby 3.1+">
|
|
4
|
+
<img src="https://img.shields.io/badge/Rails-7.1–8.0-red?style=for-the-badge&logo=rubyonrails" alt="Rails 7.1–8.0">
|
|
5
|
+
<img src="https://img.shields.io/github/actions/workflow/status/rafael-pissardo/solid_queue_guard/ci.yml?branch=main&style=for-the-badge&label=CI" alt="CI">
|
|
6
|
+
<img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT License">
|
|
7
|
+
</p>
|
|
2
8
|
|
|
3
|
-
|
|
9
|
+
<h1 align="center">solid_queue_guard</h1>
|
|
4
10
|
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>Your Solid Queue production doctor.</strong><br>
|
|
13
|
+
Catch dead workers, queue lag, and broken config <em>before</em> the 3am page.
|
|
14
|
+
</p>
|
|
7
15
|
|
|
8
|
-
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#-quick-start"><strong>Quick start</strong></a> ·
|
|
18
|
+
<a href="#-see-it-in-action"><strong>Demo output</strong></a> ·
|
|
19
|
+
<a href="#-mission-control-dashboard-opt-in"><strong>Mission Control tab</strong></a> ·
|
|
20
|
+
<a href="#-solid_queue_guard-vs-mission-control"><strong>vs Mission Control</strong></a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Rails 8 ships with [Solid Queue](https://github.com/rails/solid_queue). Redis is optional. **Production config is not.**
|
|
9
26
|
|
|
10
27
|
Your web tier can be **green** while your jobs are **dead**. Your queue can look **empty** while scheduled work is **stuck**. Your `queue.yml` can declare **10 threads** against a database pool of **5**.
|
|
11
28
|
|
|
12
|
-
**solid_queue_guard** catches that *before* it becomes
|
|
29
|
+
**solid_queue_guard** catches that *before* it becomes an incident.
|
|
13
30
|
|
|
14
31
|
> **Mission Control** shows what is happening.
|
|
15
32
|
> **solid_queue_guard** warns what is dangerous.
|
|
16
33
|
|
|
34
|
+
### Install in 30 seconds
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bundle add solid_queue_guard
|
|
38
|
+
bin/rails solid_queue_guard:install
|
|
39
|
+
bin/rails solid_queue_guard:doctor
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Table of contents
|
|
45
|
+
|
|
46
|
+
- [Why this exists](#why-this-exists)
|
|
47
|
+
- [See it in action](#-see-it-in-action)
|
|
48
|
+
- [What it checks](#what-it-checks)
|
|
49
|
+
- [Quick start](#-quick-start)
|
|
50
|
+
- [Mission Control dashboard](#-mission-control-dashboard-opt-in)
|
|
51
|
+
- [How to use it](#how-to-use-it)
|
|
52
|
+
- [Runtime process checks](#runtime-process-checks)
|
|
53
|
+
- [Configuration](#configuration)
|
|
54
|
+
- [Public API (v1.0+)](#public-api-v10)
|
|
55
|
+
- [solid_queue_guard vs Mission Control](#-solid_queue_guard-vs-mission-control)
|
|
56
|
+
- [Roadmap](#roadmap)
|
|
57
|
+
- [Compatibility](#compatibility)
|
|
58
|
+
- [Development](#development)
|
|
59
|
+
- [Contributing](#contributing)
|
|
60
|
+
|
|
17
61
|
---
|
|
18
62
|
|
|
19
63
|
## Why this exists
|
|
@@ -32,7 +76,7 @@ You don't need another dashboard. You need a **doctor**.
|
|
|
32
76
|
|
|
33
77
|
---
|
|
34
78
|
|
|
35
|
-
## See it in action
|
|
79
|
+
## 👨⚕️ See it in action
|
|
36
80
|
|
|
37
81
|
```bash
|
|
38
82
|
bundle add solid_queue_guard
|
|
@@ -61,7 +105,7 @@ Suggested fixes:
|
|
|
61
105
|
- Verify scheduler process is running in production
|
|
62
106
|
```
|
|
63
107
|
|
|
64
|
-
One command. Actionable output. No Datadog required to get started
|
|
108
|
+
**One command. Actionable output. No Datadog required to get started.**
|
|
65
109
|
|
|
66
110
|
---
|
|
67
111
|
|
|
@@ -100,7 +144,7 @@ Runs locally, in CI, or pre-deploy. **No extra infrastructure.**
|
|
|
100
144
|
|
|
101
145
|
---
|
|
102
146
|
|
|
103
|
-
## Quick start
|
|
147
|
+
## 🚀 Quick start
|
|
104
148
|
|
|
105
149
|
### Install
|
|
106
150
|
|
|
@@ -176,7 +220,9 @@ config.unhealthy_http_status = 503 # default
|
|
|
176
220
|
|
|
177
221
|
Works with **Kamal**, **Heroku**, **Fly.io**, **ECS/Fargate**, **Kubernetes**, **Better Stack**, **UptimeRobot**.
|
|
178
222
|
|
|
179
|
-
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 🛡️ Mission Control dashboard (opt-in)
|
|
180
226
|
|
|
181
227
|
Add a **Guard** tab to [Mission Control — Jobs](https://github.com/rails/mission_control-jobs) — same Bulma UI, same auth, same navigation:
|
|
182
228
|
|
|
@@ -195,7 +241,9 @@ mount MissionControl::Jobs::Engine, at: "/jobs"
|
|
|
195
241
|
mount SolidQueueGuard::Engine, at: "/solid_queue_guard" # keep /health for probes
|
|
196
242
|
```
|
|
197
243
|
|
|
198
|
-
Open `/jobs/guard` (or click the **Guard** tab inside Mission Control)
|
|
244
|
+
Open `/jobs/applications/:application_id/guard` (or click the **Guard** tab inside Mission Control):
|
|
245
|
+
|
|
246
|
+

|
|
199
247
|
|
|
200
248
|
| Section | Content |
|
|
201
249
|
| ------- | ------- |
|
|
@@ -221,7 +269,7 @@ Solid Queue does not show up in Rails `/up`. **solid_queue_guard** gives you fou
|
|
|
221
269
|
| **Doctor** | `bin/rails solid_queue_guard:doctor` | Local pre-deploy, config review |
|
|
222
270
|
| **CI gate** | `SOLID_QUEUE_GUARD_STRICT=1 bin/rails solid_queue_guard:doctor` | Block merges with broken queue config |
|
|
223
271
|
| **HTTP health** | `GET /solid_queue_guard/health` | Production uptime monitors (Kamal, ECS, UptimeRobot) |
|
|
224
|
-
| **Guard tab** | `GET /jobs/guard` (with `integrate_mission_control`) | Human-readable checks inside Mission Control |
|
|
272
|
+
| **Guard tab** | `GET /jobs/applications/:application_id/guard` (with `integrate_mission_control`) | Human-readable checks inside Mission Control |
|
|
225
273
|
|
|
226
274
|
**Mission Control** shows what is happening. **solid_queue_guard** warns what is dangerous. Use both.
|
|
227
275
|
|
|
@@ -411,7 +459,7 @@ The following surface is **stable** until `2.0` and follows [semantic versioning
|
|
|
411
459
|
| `solid_queue_guard:install:ci` | GitHub Actions workflow generator |
|
|
412
460
|
| `mount SolidQueueGuard::Engine` | HTTP health endpoint |
|
|
413
461
|
| `config.integrate_mission_control` | Guard tab in Mission Control (opt-in, requires `mission_control-jobs`) |
|
|
414
|
-
| `GET /jobs/guard` | Human-readable health dashboard (when integration enabled) |
|
|
462
|
+
| `GET /jobs/applications/:application_id/guard` | Human-readable health dashboard (when integration enabled) |
|
|
415
463
|
|
|
416
464
|
Configuration attributes, rake tasks, health JSON shape, and Mission Control integration are public. Internal check classes and registry are `@api private`.
|
|
417
465
|
|
|
@@ -419,7 +467,7 @@ Breaking changes ship only in major versions (`2.0+`). Deprecations warn one min
|
|
|
419
467
|
|
|
420
468
|
---
|
|
421
469
|
|
|
422
|
-
## solid_queue_guard vs Mission Control
|
|
470
|
+
## ⚔️ solid_queue_guard vs Mission Control
|
|
423
471
|
|
|
424
472
|
| | [Mission Control — Jobs](https://github.com/rails/mission_control-jobs) | solid_queue_guard |
|
|
425
473
|
| --- | --- | --- |
|
|
@@ -486,9 +534,9 @@ bundle exec appraisal rake test
|
|
|
486
534
|
Release a new version after CI passes:
|
|
487
535
|
|
|
488
536
|
```bash
|
|
489
|
-
# Tag must match lib/solid_queue_guard/version.rb (currently 1.1.
|
|
490
|
-
git tag v1.1.
|
|
491
|
-
git push origin v1.1.
|
|
537
|
+
# Tag must match lib/solid_queue_guard/version.rb (currently 1.1.4)
|
|
538
|
+
git tag v1.1.4
|
|
539
|
+
git push origin v1.1.4
|
|
492
540
|
```
|
|
493
541
|
|
|
494
542
|
Trusted Publishing on RubyGems publishes automatically when the tag is pushed.
|
|
@@ -13,10 +13,10 @@ module SolidQueueGuard
|
|
|
13
13
|
return if routes_installed?
|
|
14
14
|
|
|
15
15
|
::MissionControl::Jobs::Engine.routes.append do
|
|
16
|
-
get 'guard',
|
|
16
|
+
get 'applications/:application_id/guard',
|
|
17
17
|
controller: '/solid_queue_guard/mission_control/dashboard',
|
|
18
18
|
action: 'show',
|
|
19
|
-
as: :
|
|
19
|
+
as: :application_solid_queue_guard_dashboard
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -31,7 +31,7 @@ module SolidQueueGuard
|
|
|
31
31
|
|
|
32
32
|
def routes_installed?
|
|
33
33
|
::MissionControl::Jobs::Engine.routes.routes.any? do |route|
|
|
34
|
-
route.name == '
|
|
34
|
+
route.name == 'application_solid_queue_guard_dashboard'
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|