solid_observer 0.1.1 → 0.3.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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +63 -0
  3. data/README.md +157 -28
  4. data/app/assets/javascripts/solid_observer/live_poll.js +376 -0
  5. data/app/controllers/concerns/solid_observer/paginatable.rb +17 -0
  6. data/app/controllers/concerns/solid_observer/require_persistence_mode.rb +19 -0
  7. data/app/controllers/concerns/solid_observer/require_solid_queue.rb +19 -0
  8. data/app/controllers/solid_observer/application_controller.rb +69 -0
  9. data/app/controllers/solid_observer/dashboard_controller.rb +79 -0
  10. data/app/controllers/solid_observer/events_controller.rb +50 -0
  11. data/app/controllers/solid_observer/jobs_controller.rb +85 -0
  12. data/app/controllers/solid_observer/storages_controller.rb +12 -0
  13. data/app/helpers/solid_observer/application_helper.rb +95 -0
  14. data/app/helpers/solid_observer/dashboard_helper.rb +39 -0
  15. data/app/models/solid_observer/queue_event.rb +134 -0
  16. data/app/models/solid_observer/queue_metric.rb +1 -1
  17. data/app/presenters/solid_observer/execution_presenter.rb +50 -0
  18. data/app/views/layouts/solid_observer/application.html.erb +470 -0
  19. data/app/views/solid_observer/dashboard/_chart.html.erb +28 -0
  20. data/app/views/solid_observer/dashboard/_live_state.html.erb +20 -0
  21. data/app/views/solid_observer/dashboard/_queue_table.html.erb +34 -0
  22. data/app/views/solid_observer/dashboard/_right_now.html.erb +3 -0
  23. data/app/views/solid_observer/dashboard/_throughput.html.erb +32 -0
  24. data/app/views/solid_observer/dashboard/index.html.erb +113 -0
  25. data/app/views/solid_observer/errors/storage_unavailable.html.erb +27 -0
  26. data/app/views/solid_observer/events/index.html.erb +53 -0
  27. data/app/views/solid_observer/events/show.html.erb +47 -0
  28. data/app/views/solid_observer/jobs/index.html.erb +61 -0
  29. data/app/views/solid_observer/jobs/show.html.erb +71 -0
  30. data/app/views/solid_observer/shared/_empty_state.html.erb +5 -0
  31. data/app/views/solid_observer/shared/_pagination.html.erb +17 -0
  32. data/app/views/solid_observer/shared/_stat_card.html.erb +9 -0
  33. data/app/views/solid_observer/storages/show.html.erb +39 -0
  34. data/bin/quality_gate +95 -0
  35. data/config/routes.rb +17 -0
  36. data/db/migrate/20260424000001_add_composite_indexes_to_queue_events.rb +30 -0
  37. data/lib/generators/solid_observer/install_generator.rb +12 -25
  38. data/lib/generators/solid_observer/templates/initializer.rb.tt +5 -6
  39. data/lib/solid_observer/base_metric.rb +1 -1
  40. data/lib/solid_observer/chart_buffer.rb +83 -0
  41. data/lib/solid_observer/cli/base.rb +2 -2
  42. data/lib/solid_observer/cli/jobs.rb +2 -2
  43. data/lib/solid_observer/cli/status.rb +20 -2
  44. data/lib/solid_observer/cli/storage.rb +41 -40
  45. data/lib/solid_observer/configuration.rb +47 -37
  46. data/lib/solid_observer/correlation_id_resolver.rb +8 -6
  47. data/lib/solid_observer/engine.rb +72 -17
  48. data/lib/solid_observer/params/events_filter.rb +37 -0
  49. data/lib/solid_observer/params/jobs_filter.rb +35 -0
  50. data/lib/solid_observer/queries/events_query.rb +27 -0
  51. data/lib/solid_observer/queries/execution_finder.rb +42 -0
  52. data/lib/solid_observer/queries/job_executions_query.rb +73 -0
  53. data/lib/solid_observer/queue_event_buffer.rb +163 -25
  54. data/lib/solid_observer/queue_stats.rb +165 -19
  55. data/lib/solid_observer/services/cleanup_storage.rb +58 -42
  56. data/lib/solid_observer/services/database_size.rb +86 -0
  57. data/lib/solid_observer/services/flush_event_buffer.rb +31 -15
  58. data/lib/solid_observer/services/install_migrations.rb +49 -0
  59. data/lib/solid_observer/services/record_event.rb +51 -14
  60. data/lib/solid_observer/services/ui_auth_check.rb +65 -0
  61. data/lib/solid_observer/subscriber.rb +15 -8
  62. data/lib/solid_observer/version.rb +1 -1
  63. data/lib/solid_observer.rb +7 -0
  64. data/lib/tasks/solid_observer.rake +10 -2
  65. metadata +55 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_observer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BartOz
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '8.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: concurrent-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.3.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.3.1
26
40
  description: Production-grade observability for Rails 8's Solid Stack. Monitor ActiveJob
27
41
  performance, track queue metrics, and debug issues with zero external dependencies.
28
42
  Built-in CLI, retention policies, and APM integrations.
@@ -35,20 +49,52 @@ files:
35
49
  - CHANGELOG.md
36
50
  - LICENSE.txt
37
51
  - README.md
52
+ - app/assets/javascripts/solid_observer/live_poll.js
53
+ - app/controllers/concerns/solid_observer/paginatable.rb
54
+ - app/controllers/concerns/solid_observer/require_persistence_mode.rb
55
+ - app/controllers/concerns/solid_observer/require_solid_queue.rb
56
+ - app/controllers/solid_observer/application_controller.rb
57
+ - app/controllers/solid_observer/dashboard_controller.rb
58
+ - app/controllers/solid_observer/events_controller.rb
59
+ - app/controllers/solid_observer/jobs_controller.rb
60
+ - app/controllers/solid_observer/storages_controller.rb
61
+ - app/helpers/solid_observer/application_helper.rb
62
+ - app/helpers/solid_observer/dashboard_helper.rb
38
63
  - app/jobs/solid_observer/cleanup_job.rb
39
64
  - app/models/solid_observer/queue_event.rb
40
65
  - app/models/solid_observer/queue_metric.rb
41
66
  - app/models/solid_observer/storage_info.rb
67
+ - app/presenters/solid_observer/execution_presenter.rb
68
+ - app/views/layouts/solid_observer/application.html.erb
69
+ - app/views/solid_observer/dashboard/_chart.html.erb
70
+ - app/views/solid_observer/dashboard/_live_state.html.erb
71
+ - app/views/solid_observer/dashboard/_queue_table.html.erb
72
+ - app/views/solid_observer/dashboard/_right_now.html.erb
73
+ - app/views/solid_observer/dashboard/_throughput.html.erb
74
+ - app/views/solid_observer/dashboard/index.html.erb
75
+ - app/views/solid_observer/errors/storage_unavailable.html.erb
76
+ - app/views/solid_observer/events/index.html.erb
77
+ - app/views/solid_observer/events/show.html.erb
78
+ - app/views/solid_observer/jobs/index.html.erb
79
+ - app/views/solid_observer/jobs/show.html.erb
80
+ - app/views/solid_observer/shared/_empty_state.html.erb
81
+ - app/views/solid_observer/shared/_pagination.html.erb
82
+ - app/views/solid_observer/shared/_stat_card.html.erb
83
+ - app/views/solid_observer/storages/show.html.erb
42
84
  - bin/console
85
+ - bin/quality_gate
43
86
  - bin/setup
87
+ - config/routes.rb
44
88
  - db/migrate/20260115000001_create_solid_observer_queue_events.rb
45
89
  - db/migrate/20260115000002_create_solid_observer_metrics.rb
46
90
  - db/migrate/20260115000003_create_solid_observer_storage_info.rb
91
+ - db/migrate/20260424000001_add_composite_indexes_to_queue_events.rb
47
92
  - lib/generators/solid_observer/install_generator.rb
48
93
  - lib/generators/solid_observer/templates/initializer.rb.tt
49
94
  - lib/solid_observer.rb
50
95
  - lib/solid_observer/base_event.rb
51
96
  - lib/solid_observer/base_metric.rb
97
+ - lib/solid_observer/chart_buffer.rb
52
98
  - lib/solid_observer/cli/base.rb
53
99
  - lib/solid_observer/cli/jobs.rb
54
100
  - lib/solid_observer/cli/status.rb
@@ -56,11 +102,19 @@ files:
56
102
  - lib/solid_observer/configuration.rb
57
103
  - lib/solid_observer/correlation_id_resolver.rb
58
104
  - lib/solid_observer/engine.rb
105
+ - lib/solid_observer/params/events_filter.rb
106
+ - lib/solid_observer/params/jobs_filter.rb
107
+ - lib/solid_observer/queries/events_query.rb
108
+ - lib/solid_observer/queries/execution_finder.rb
109
+ - lib/solid_observer/queries/job_executions_query.rb
59
110
  - lib/solid_observer/queue_event_buffer.rb
60
111
  - lib/solid_observer/queue_stats.rb
61
112
  - lib/solid_observer/services/cleanup_storage.rb
113
+ - lib/solid_observer/services/database_size.rb
62
114
  - lib/solid_observer/services/flush_event_buffer.rb
115
+ - lib/solid_observer/services/install_migrations.rb
63
116
  - lib/solid_observer/services/record_event.rb
117
+ - lib/solid_observer/services/ui_auth_check.rb
64
118
  - lib/solid_observer/subscriber.rb
65
119
  - lib/solid_observer/version.rb
66
120
  - lib/tasks/solid_observer.rake