solid_observer 0.3.0 → 0.5.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/CHANGELOG.md +34 -0
- data/README.md +195 -82
- data/app/assets/javascripts/solid_observer/live_poll.js +3 -1
- data/app/controllers/solid_observer/application_controller.rb +1 -0
- data/app/controllers/solid_observer/cable_dashboard_controller.rb +52 -0
- data/app/controllers/solid_observer/cable_operations_controller.rb +16 -0
- data/app/controllers/solid_observer/cache_dashboard_controller.rb +52 -0
- data/app/controllers/solid_observer/cache_operations_controller.rb +24 -0
- data/app/controllers/solid_observer/dashboard_controller.rb +38 -1
- data/app/controllers/solid_observer/storages_controller.rb +1 -1
- data/app/helpers/solid_observer/application_helper.rb +268 -5
- data/app/helpers/solid_observer/dashboard_helper.rb +30 -11
- data/app/models/solid_observer/cable_event.rb +13 -0
- data/app/models/solid_observer/cable_metric.rb +12 -0
- data/app/models/solid_observer/cache_event.rb +15 -0
- data/app/models/solid_observer/cache_metric.rb +13 -0
- data/app/models/solid_observer/storage_info.rb +4 -1
- data/app/views/layouts/solid_observer/application.html.erb +157 -19
- data/app/views/solid_observer/cable_dashboard/_charts.html.erb +31 -0
- data/app/views/solid_observer/cable_dashboard/_recent_events.html.erb +34 -0
- data/app/views/solid_observer/cable_dashboard/_summary.html.erb +34 -0
- data/app/views/solid_observer/cable_dashboard/index.html.erb +118 -0
- data/app/views/solid_observer/cache_dashboard/_charts.html.erb +40 -0
- data/app/views/solid_observer/cache_dashboard/_recent_events.html.erb +34 -0
- data/app/views/solid_observer/cache_dashboard/_summary.html.erb +39 -0
- data/app/views/solid_observer/cache_dashboard/index.html.erb +62 -0
- data/app/views/solid_observer/cache_operations/_confirm_clear.html.erb +6 -0
- data/app/views/solid_observer/cache_operations/index.html.erb +60 -0
- data/app/views/solid_observer/dashboard/_queue_table.html.erb +1 -0
- data/app/views/solid_observer/dashboard/index.html.erb +32 -5
- data/app/views/solid_observer/events/index.html.erb +1 -0
- data/app/views/solid_observer/jobs/index.html.erb +1 -0
- data/app/views/solid_observer/jobs/show.html.erb +3 -3
- data/app/views/solid_observer/storages/show.html.erb +90 -32
- data/config/routes.rb +7 -0
- data/db/migrate/20260601000001_create_solid_observer_cache_events.rb +22 -0
- data/db/migrate/20260601000002_create_solid_observer_cache_metrics.rb +18 -0
- data/db/migrate/20260602000001_add_component_to_solid_observer_storage_infos.rb +8 -0
- data/db/migrate/20260612000001_add_event_type_recorded_at_index_to_cache_events.rb +21 -0
- data/db/migrate/20260619000001_create_solid_observer_cable_events.rb +22 -0
- data/db/migrate/20260619000002_create_solid_observer_cable_metrics.rb +17 -0
- data/lib/generators/solid_observer/install_generator.rb +8 -1
- data/lib/generators/solid_observer/templates/initializer.rb.tt +20 -4
- data/lib/solid_observer/base_event.rb +1 -1
- data/lib/solid_observer/base_metric.rb +1 -1
- data/lib/solid_observer/base_record.rb +8 -0
- data/lib/solid_observer/cable_event_buffer.rb +28 -0
- data/lib/solid_observer/cable_metric_buffer.rb +230 -0
- data/lib/solid_observer/cable_subscriber.rb +57 -0
- data/lib/solid_observer/cache_event_buffer.rb +28 -0
- data/lib/solid_observer/cache_metric_buffer.rb +229 -0
- data/lib/solid_observer/cache_subscriber.rb +47 -0
- data/lib/solid_observer/chart_buffer.rb +84 -27
- data/lib/solid_observer/cli/storage.rb +16 -13
- data/lib/solid_observer/configuration.rb +67 -5
- data/lib/solid_observer/engine.rb +70 -15
- data/lib/solid_observer/event_buffer_core.rb +218 -0
- data/lib/solid_observer/queue_event_buffer.rb +9 -201
- data/lib/solid_observer/services/cable_operations.rb +74 -0
- data/lib/solid_observer/services/cable_stats.rb +385 -0
- data/lib/solid_observer/services/cache_operations.rb +115 -0
- data/lib/solid_observer/services/cache_stats.rb +346 -0
- data/lib/solid_observer/services/cleanup_storage.rb +98 -47
- data/lib/solid_observer/services/database_size.rb +13 -8
- data/lib/solid_observer/services/flush_cable_event_buffer.rb +54 -0
- data/lib/solid_observer/services/flush_cable_metrics.rb +54 -0
- data/lib/solid_observer/services/flush_cache_event_buffer.rb +54 -0
- data/lib/solid_observer/services/flush_cache_metrics.rb +56 -0
- data/lib/solid_observer/services/record_cable_event.rb +114 -0
- data/lib/solid_observer/services/record_cable_metric.rb +73 -0
- data/lib/solid_observer/services/record_cache_event.rb +165 -0
- data/lib/solid_observer/services/record_cache_metric.rb +66 -0
- data/lib/solid_observer/services/storage_info_snapshot.rb +216 -0
- data/lib/solid_observer/version.rb +1 -1
- data/lib/solid_observer.rb +36 -11
- data/lib/tasks/solid_observer.rake +111 -21
- metadata +47 -5
- data/bin/console +0 -11
- data/bin/quality_gate +0 -95
- data/bin/setup +0 -8
data/bin/quality_gate
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
# SolidObserver Quality Gate Suite
|
|
5
|
-
# Runs all non-negotiable gates in sequence.
|
|
6
|
-
# Usage: bin/quality_gate [--skip-appraisal]
|
|
7
|
-
#
|
|
8
|
-
# Individual gates can be run via:
|
|
9
|
-
# bin/quality_gate rspec
|
|
10
|
-
# bin/quality_gate standardrb
|
|
11
|
-
# bin/quality_gate reek
|
|
12
|
-
# bin/quality_gate appraisal
|
|
13
|
-
# bin/quality_gate audit
|
|
14
|
-
|
|
15
|
-
SKIP_APPRAISAL=false
|
|
16
|
-
SINGLE_GATE=""
|
|
17
|
-
|
|
18
|
-
for arg in "$@"; do
|
|
19
|
-
case "$arg" in
|
|
20
|
-
--skip-appraisal) SKIP_APPRAISAL=true ;;
|
|
21
|
-
rspec|standardrb|reek|appraisal|audit) SINGLE_GATE="$arg" ;;
|
|
22
|
-
esac
|
|
23
|
-
done
|
|
24
|
-
|
|
25
|
-
red() { printf '\033[31m%s\033[0m\n' "$*" >&2; }
|
|
26
|
-
green() { printf '\033[32m%s\033[0m\n' "$*"; }
|
|
27
|
-
dim() { printf '\033[2m%s\033[0m\n' "$*"; }
|
|
28
|
-
|
|
29
|
-
run_gate() {
|
|
30
|
-
local label="$1"; shift
|
|
31
|
-
dim "⏳ ${label}..."
|
|
32
|
-
if "$@" > /dev/null 2>&1; then
|
|
33
|
-
green "✅ ${label}"
|
|
34
|
-
return 0
|
|
35
|
-
else
|
|
36
|
-
red "❌ ${label} FAILED — check output above"
|
|
37
|
-
return 1
|
|
38
|
-
fi
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
gate_rspec() {
|
|
42
|
-
run_gate "RSpec" bundle exec rspec
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
gate_standardrb() {
|
|
46
|
-
run_gate "StandardRB" bundle exec standardrb
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
gate_reek() {
|
|
50
|
-
run_gate "Reek" bundle exec reek lib/ app/ db/
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
gate_appraisal() {
|
|
54
|
-
run_gate "Rails 8.0 appraisal" bundle exec appraisal rails-8.0 rspec \
|
|
55
|
-
&& run_gate "Rails 8.1 appraisal" bundle exec appraisal rails-8.1 rspec
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
gate_audit() {
|
|
59
|
-
dim "⏳ bundler-audit: updating advisory DB..."
|
|
60
|
-
bundle exec bundler-audit update > /dev/null 2>&1 || true
|
|
61
|
-
run_gate "bundler-audit" bundle exec bundler-audit check
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
run_all() {
|
|
65
|
-
local failed=0
|
|
66
|
-
|
|
67
|
-
gate_rspec || failed=$((failed + 1))
|
|
68
|
-
gate_standardrb || failed=$((failed + 1))
|
|
69
|
-
gate_reek || failed=$((failed + 1))
|
|
70
|
-
|
|
71
|
-
if [ "$SKIP_APPRAISAL" = false ]; then
|
|
72
|
-
gate_appraisal || failed=$((failed + 1))
|
|
73
|
-
else
|
|
74
|
-
dim "⏭️ Skipping appraisal (--skip-appraisal)"
|
|
75
|
-
fi
|
|
76
|
-
|
|
77
|
-
gate_audit || failed=$((failed + 1))
|
|
78
|
-
|
|
79
|
-
echo ""
|
|
80
|
-
if [ "$failed" -eq 0 ]; then
|
|
81
|
-
green "All quality gates passed"
|
|
82
|
-
else
|
|
83
|
-
red "${failed} gate(s) failed"
|
|
84
|
-
return 1
|
|
85
|
-
fi
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
case "$SINGLE_GATE" in
|
|
89
|
-
rspec) gate_rspec ;;
|
|
90
|
-
standardrb) gate_standardrb ;;
|
|
91
|
-
reek) gate_reek ;;
|
|
92
|
-
appraisal) gate_appraisal ;;
|
|
93
|
-
audit) gate_audit ;;
|
|
94
|
-
"") run_all ;;
|
|
95
|
-
esac
|