rails_error_dashboard 0.3.0 → 0.4.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/README.md +162 -834
- data/app/controllers/rails_error_dashboard/errors_controller.rb +140 -0
- data/app/jobs/rails_error_dashboard/swallowed_exception_flush_job.rb +32 -0
- data/app/models/rails_error_dashboard/diagnostic_dump.rb +14 -0
- data/app/models/rails_error_dashboard/swallowed_exception.rb +38 -0
- data/app/views/layouts/rails_error_dashboard.html.erb +33 -0
- data/app/views/rails_error_dashboard/errors/_instance_variables.html.erb +55 -0
- data/app/views/rails_error_dashboard/errors/_local_variables.html.erb +46 -0
- data/app/views/rails_error_dashboard/errors/_request_context.html.erb +18 -7
- data/app/views/rails_error_dashboard/errors/database_health_summary.html.erb +450 -0
- data/app/views/rails_error_dashboard/errors/diagnostic_dumps.html.erb +182 -0
- data/app/views/rails_error_dashboard/errors/job_health_summary.html.erb +152 -0
- data/app/views/rails_error_dashboard/errors/rack_attack_summary.html.erb +133 -0
- data/app/views/rails_error_dashboard/errors/show.html.erb +4 -0
- data/app/views/rails_error_dashboard/errors/swallowed_exceptions.html.erb +126 -0
- data/config/routes.rb +6 -0
- data/db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb +33 -0
- data/db/migrate/20260306000001_add_local_variables_to_error_logs.rb +13 -0
- data/db/migrate/20260306000002_add_instance_variables_to_error_logs.rb +7 -0
- data/db/migrate/20260306000003_create_rails_error_dashboard_swallowed_exceptions.rb +34 -0
- data/db/migrate/20260307000001_create_rails_error_dashboard_diagnostic_dumps.rb +17 -0
- data/lib/generators/rails_error_dashboard/install/install_generator.rb +32 -0
- data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +47 -0
- data/lib/rails_error_dashboard/commands/flush_swallowed_exceptions.rb +103 -0
- data/lib/rails_error_dashboard/commands/log_error.rb +68 -0
- data/lib/rails_error_dashboard/configuration.rb +122 -0
- data/lib/rails_error_dashboard/engine.rb +24 -0
- data/lib/rails_error_dashboard/queries/dashboard_stats.rb +32 -11
- data/lib/rails_error_dashboard/queries/database_health_summary.rb +82 -0
- data/lib/rails_error_dashboard/queries/job_health_summary.rb +101 -0
- data/lib/rails_error_dashboard/queries/rack_attack_summary.rb +90 -0
- data/lib/rails_error_dashboard/queries/swallowed_exception_summary.rb +97 -0
- data/lib/rails_error_dashboard/services/breadcrumb_collector.rb +12 -0
- data/lib/rails_error_dashboard/services/crash_capture.rb +234 -0
- data/lib/rails_error_dashboard/services/database_health_inspector.rb +168 -0
- data/lib/rails_error_dashboard/services/diagnostic_dump_generator.rb +98 -0
- data/lib/rails_error_dashboard/services/local_variable_capturer.rb +207 -0
- data/lib/rails_error_dashboard/services/rspec_generator.rb +145 -0
- data/lib/rails_error_dashboard/services/swallowed_exception_tracker.rb +277 -0
- data/lib/rails_error_dashboard/services/variable_serializer.rb +326 -0
- data/lib/rails_error_dashboard/subscribers/rack_attack_subscriber.rb +94 -0
- data/lib/rails_error_dashboard/version.rb +1 -1
- data/lib/rails_error_dashboard.rb +13 -0
- data/lib/tasks/error_dashboard.rake +34 -0
- metadata +29 -2
|
@@ -54,8 +54,16 @@ require "rails_error_dashboard/services/notification_throttler"
|
|
|
54
54
|
require "rails_error_dashboard/services/breadcrumb_collector"
|
|
55
55
|
require "rails_error_dashboard/services/n_plus_one_detector"
|
|
56
56
|
require "rails_error_dashboard/services/curl_generator"
|
|
57
|
+
require "rails_error_dashboard/services/rspec_generator"
|
|
58
|
+
require "rails_error_dashboard/services/database_health_inspector"
|
|
57
59
|
require "rails_error_dashboard/services/cache_analyzer"
|
|
60
|
+
require "rails_error_dashboard/services/variable_serializer"
|
|
61
|
+
require "rails_error_dashboard/services/local_variable_capturer"
|
|
62
|
+
require "rails_error_dashboard/services/swallowed_exception_tracker"
|
|
63
|
+
require "rails_error_dashboard/services/crash_capture"
|
|
64
|
+
require "rails_error_dashboard/services/diagnostic_dump_generator"
|
|
58
65
|
require "rails_error_dashboard/subscribers/breadcrumb_subscriber"
|
|
66
|
+
require "rails_error_dashboard/subscribers/rack_attack_subscriber"
|
|
59
67
|
require "rails_error_dashboard/queries/co_occurring_errors"
|
|
60
68
|
require "rails_error_dashboard/queries/error_cascades"
|
|
61
69
|
require "rails_error_dashboard/queries/baseline_stats"
|
|
@@ -78,6 +86,7 @@ require "rails_error_dashboard/commands/find_or_increment_error"
|
|
|
78
86
|
require "rails_error_dashboard/commands/find_or_create_application"
|
|
79
87
|
require "rails_error_dashboard/commands/upsert_cascade_pattern"
|
|
80
88
|
require "rails_error_dashboard/commands/upsert_baseline"
|
|
89
|
+
require "rails_error_dashboard/commands/flush_swallowed_exceptions"
|
|
81
90
|
require "rails_error_dashboard/queries/errors_list"
|
|
82
91
|
require "rails_error_dashboard/queries/dashboard_stats"
|
|
83
92
|
require "rails_error_dashboard/queries/analytics_stats"
|
|
@@ -89,6 +98,10 @@ require "rails_error_dashboard/queries/critical_alerts"
|
|
|
89
98
|
require "rails_error_dashboard/queries/deprecation_warnings"
|
|
90
99
|
require "rails_error_dashboard/queries/n_plus_one_summary"
|
|
91
100
|
require "rails_error_dashboard/queries/cache_health_summary"
|
|
101
|
+
require "rails_error_dashboard/queries/job_health_summary"
|
|
102
|
+
require "rails_error_dashboard/queries/database_health_summary"
|
|
103
|
+
require "rails_error_dashboard/queries/swallowed_exception_summary"
|
|
104
|
+
require "rails_error_dashboard/queries/rack_attack_summary"
|
|
92
105
|
require "rails_error_dashboard/error_reporter"
|
|
93
106
|
require "rails_error_dashboard/middleware/error_catcher"
|
|
94
107
|
require "rails_error_dashboard/middleware/rate_limiter"
|
|
@@ -444,6 +444,40 @@ namespace :error_dashboard do
|
|
|
444
444
|
puts "\n" + "=" * 80 + "\n"
|
|
445
445
|
end
|
|
446
446
|
|
|
447
|
+
desc "Capture diagnostic dump of current system state"
|
|
448
|
+
task diagnostic_dump: :environment do
|
|
449
|
+
unless RailsErrorDashboard.configuration.enable_diagnostic_dump
|
|
450
|
+
puts "\n Diagnostic dumps are not enabled."
|
|
451
|
+
puts " Set config.enable_diagnostic_dump = true in your initializer."
|
|
452
|
+
next
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
puts "\n" + "=" * 70
|
|
456
|
+
puts " RAILS ERROR DASHBOARD - DIAGNOSTIC DUMP"
|
|
457
|
+
puts "=" * 70
|
|
458
|
+
|
|
459
|
+
dump = RailsErrorDashboard::Services::DiagnosticDumpGenerator.call
|
|
460
|
+
|
|
461
|
+
app_name = RailsErrorDashboard.configuration.application_name ||
|
|
462
|
+
ENV["APPLICATION_NAME"] ||
|
|
463
|
+
(defined?(Rails) && Rails.application.class.module_parent_name) ||
|
|
464
|
+
"Unknown"
|
|
465
|
+
app = RailsErrorDashboard::Commands::FindOrCreateApplication.call(app_name)
|
|
466
|
+
|
|
467
|
+
RailsErrorDashboard::DiagnosticDump.create!(
|
|
468
|
+
application_id: app.id,
|
|
469
|
+
dump_data: dump.to_json,
|
|
470
|
+
captured_at: Time.current,
|
|
471
|
+
note: ENV["NOTE"]
|
|
472
|
+
)
|
|
473
|
+
|
|
474
|
+
puts "\n" + JSON.pretty_generate(dump)
|
|
475
|
+
puts "\n Diagnostic dump saved to database."
|
|
476
|
+
puts " Application: #{app_name}"
|
|
477
|
+
puts " Note: #{ENV['NOTE'] || '(none)'}"
|
|
478
|
+
puts "\n" + "=" * 70 + "\n"
|
|
479
|
+
end
|
|
480
|
+
|
|
447
481
|
desc "Run retention cleanup (delete errors older than retention_days)"
|
|
448
482
|
task retention_cleanup: :environment do
|
|
449
483
|
config = RailsErrorDashboard.configuration
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_error_dashboard
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Anjan Jagirdar
|
|
@@ -256,16 +256,19 @@ files:
|
|
|
256
256
|
- app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb
|
|
257
257
|
- app/jobs/rails_error_dashboard/retention_cleanup_job.rb
|
|
258
258
|
- app/jobs/rails_error_dashboard/slack_error_notification_job.rb
|
|
259
|
+
- app/jobs/rails_error_dashboard/swallowed_exception_flush_job.rb
|
|
259
260
|
- app/jobs/rails_error_dashboard/webhook_error_notification_job.rb
|
|
260
261
|
- app/mailers/rails_error_dashboard/application_mailer.rb
|
|
261
262
|
- app/mailers/rails_error_dashboard/error_notification_mailer.rb
|
|
262
263
|
- app/models/rails_error_dashboard/application.rb
|
|
263
264
|
- app/models/rails_error_dashboard/cascade_pattern.rb
|
|
265
|
+
- app/models/rails_error_dashboard/diagnostic_dump.rb
|
|
264
266
|
- app/models/rails_error_dashboard/error_baseline.rb
|
|
265
267
|
- app/models/rails_error_dashboard/error_comment.rb
|
|
266
268
|
- app/models/rails_error_dashboard/error_log.rb
|
|
267
269
|
- app/models/rails_error_dashboard/error_logs_record.rb
|
|
268
270
|
- app/models/rails_error_dashboard/error_occurrence.rb
|
|
271
|
+
- app/models/rails_error_dashboard/swallowed_exception.rb
|
|
269
272
|
- app/views/layouts/rails_error_dashboard.html.erb
|
|
270
273
|
- app/views/rails_error_dashboard/error_notification_mailer/error_alert.html.erb
|
|
271
274
|
- app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb
|
|
@@ -275,6 +278,8 @@ files:
|
|
|
275
278
|
- app/views/rails_error_dashboard/errors/_error_cascades.html.erb
|
|
276
279
|
- app/views/rails_error_dashboard/errors/_error_info.html.erb
|
|
277
280
|
- app/views/rails_error_dashboard/errors/_error_row.html.erb
|
|
281
|
+
- app/views/rails_error_dashboard/errors/_instance_variables.html.erb
|
|
282
|
+
- app/views/rails_error_dashboard/errors/_local_variables.html.erb
|
|
278
283
|
- app/views/rails_error_dashboard/errors/_modals.html.erb
|
|
279
284
|
- app/views/rails_error_dashboard/errors/_pattern_insights.html.erb
|
|
280
285
|
- app/views/rails_error_dashboard/errors/_request_context.html.erb
|
|
@@ -288,14 +293,19 @@ files:
|
|
|
288
293
|
- app/views/rails_error_dashboard/errors/analytics.html.erb
|
|
289
294
|
- app/views/rails_error_dashboard/errors/cache_health_summary.html.erb
|
|
290
295
|
- app/views/rails_error_dashboard/errors/correlation.html.erb
|
|
296
|
+
- app/views/rails_error_dashboard/errors/database_health_summary.html.erb
|
|
291
297
|
- app/views/rails_error_dashboard/errors/deprecations.html.erb
|
|
298
|
+
- app/views/rails_error_dashboard/errors/diagnostic_dumps.html.erb
|
|
292
299
|
- app/views/rails_error_dashboard/errors/index.html.erb
|
|
300
|
+
- app/views/rails_error_dashboard/errors/job_health_summary.html.erb
|
|
293
301
|
- app/views/rails_error_dashboard/errors/n_plus_one_summary.html.erb
|
|
294
302
|
- app/views/rails_error_dashboard/errors/overview.html.erb
|
|
295
303
|
- app/views/rails_error_dashboard/errors/platform_comparison.html.erb
|
|
304
|
+
- app/views/rails_error_dashboard/errors/rack_attack_summary.html.erb
|
|
296
305
|
- app/views/rails_error_dashboard/errors/settings.html.erb
|
|
297
306
|
- app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb
|
|
298
307
|
- app/views/rails_error_dashboard/errors/show.html.erb
|
|
308
|
+
- app/views/rails_error_dashboard/errors/swallowed_exceptions.html.erb
|
|
299
309
|
- config/routes.rb
|
|
300
310
|
- db/development.sqlite3
|
|
301
311
|
- db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb
|
|
@@ -324,6 +334,10 @@ files:
|
|
|
324
334
|
- db/migrate/20260221000002_add_reopened_at_to_error_logs.rb
|
|
325
335
|
- db/migrate/20260303000001_add_breadcrumbs_to_error_logs.rb
|
|
326
336
|
- db/migrate/20260304000001_add_system_health_to_error_logs.rb
|
|
337
|
+
- db/migrate/20260306000001_add_local_variables_to_error_logs.rb
|
|
338
|
+
- db/migrate/20260306000002_add_instance_variables_to_error_logs.rb
|
|
339
|
+
- db/migrate/20260306000003_create_rails_error_dashboard_swallowed_exceptions.rb
|
|
340
|
+
- db/migrate/20260307000001_create_rails_error_dashboard_diagnostic_dumps.rb
|
|
327
341
|
- lib/generators/rails_error_dashboard/install/install_generator.rb
|
|
328
342
|
- lib/generators/rails_error_dashboard/install/templates/README
|
|
329
343
|
- lib/generators/rails_error_dashboard/install/templates/initializer.rb
|
|
@@ -338,6 +352,7 @@ files:
|
|
|
338
352
|
- lib/rails_error_dashboard/commands/calculate_cascade_probability.rb
|
|
339
353
|
- lib/rails_error_dashboard/commands/find_or_create_application.rb
|
|
340
354
|
- lib/rails_error_dashboard/commands/find_or_increment_error.rb
|
|
355
|
+
- lib/rails_error_dashboard/commands/flush_swallowed_exceptions.rb
|
|
341
356
|
- lib/rails_error_dashboard/commands/increment_cascade_detection.rb
|
|
342
357
|
- lib/rails_error_dashboard/commands/log_error.rb
|
|
343
358
|
- lib/rails_error_dashboard/commands/resolve_error.rb
|
|
@@ -368,16 +383,20 @@ files:
|
|
|
368
383
|
- lib/rails_error_dashboard/queries/co_occurring_errors.rb
|
|
369
384
|
- lib/rails_error_dashboard/queries/critical_alerts.rb
|
|
370
385
|
- lib/rails_error_dashboard/queries/dashboard_stats.rb
|
|
386
|
+
- lib/rails_error_dashboard/queries/database_health_summary.rb
|
|
371
387
|
- lib/rails_error_dashboard/queries/deprecation_warnings.rb
|
|
372
388
|
- lib/rails_error_dashboard/queries/error_cascades.rb
|
|
373
389
|
- lib/rails_error_dashboard/queries/error_correlation.rb
|
|
374
390
|
- lib/rails_error_dashboard/queries/errors_list.rb
|
|
375
391
|
- lib/rails_error_dashboard/queries/filter_options.rb
|
|
392
|
+
- lib/rails_error_dashboard/queries/job_health_summary.rb
|
|
376
393
|
- lib/rails_error_dashboard/queries/mttr_stats.rb
|
|
377
394
|
- lib/rails_error_dashboard/queries/n_plus_one_summary.rb
|
|
378
395
|
- lib/rails_error_dashboard/queries/platform_comparison.rb
|
|
396
|
+
- lib/rails_error_dashboard/queries/rack_attack_summary.rb
|
|
379
397
|
- lib/rails_error_dashboard/queries/recurring_issues.rb
|
|
380
398
|
- lib/rails_error_dashboard/queries/similar_errors.rb
|
|
399
|
+
- lib/rails_error_dashboard/queries/swallowed_exception_summary.rb
|
|
381
400
|
- lib/rails_error_dashboard/services/analytics_cache_manager.rb
|
|
382
401
|
- lib/rails_error_dashboard/services/backtrace_parser.rb
|
|
383
402
|
- lib/rails_error_dashboard/services/backtrace_processor.rb
|
|
@@ -388,7 +407,10 @@ files:
|
|
|
388
407
|
- lib/rails_error_dashboard/services/cache_analyzer.rb
|
|
389
408
|
- lib/rails_error_dashboard/services/cascade_detector.rb
|
|
390
409
|
- lib/rails_error_dashboard/services/cause_chain_extractor.rb
|
|
410
|
+
- lib/rails_error_dashboard/services/crash_capture.rb
|
|
391
411
|
- lib/rails_error_dashboard/services/curl_generator.rb
|
|
412
|
+
- lib/rails_error_dashboard/services/database_health_inspector.rb
|
|
413
|
+
- lib/rails_error_dashboard/services/diagnostic_dump_generator.rb
|
|
392
414
|
- lib/rails_error_dashboard/services/discord_payload_builder.rb
|
|
393
415
|
- lib/rails_error_dashboard/services/environment_snapshot.rb
|
|
394
416
|
- lib/rails_error_dashboard/services/error_broadcaster.rb
|
|
@@ -398,6 +420,7 @@ files:
|
|
|
398
420
|
- lib/rails_error_dashboard/services/exception_filter.rb
|
|
399
421
|
- lib/rails_error_dashboard/services/git_blame_reader.rb
|
|
400
422
|
- lib/rails_error_dashboard/services/github_link_generator.rb
|
|
423
|
+
- lib/rails_error_dashboard/services/local_variable_capturer.rb
|
|
401
424
|
- lib/rails_error_dashboard/services/n_plus_one_detector.rb
|
|
402
425
|
- lib/rails_error_dashboard/services/notification_helpers.rb
|
|
403
426
|
- lib/rails_error_dashboard/services/notification_throttler.rb
|
|
@@ -406,15 +429,19 @@ files:
|
|
|
406
429
|
- lib/rails_error_dashboard/services/pearson_correlation.rb
|
|
407
430
|
- lib/rails_error_dashboard/services/platform_detector.rb
|
|
408
431
|
- lib/rails_error_dashboard/services/priority_score_calculator.rb
|
|
432
|
+
- lib/rails_error_dashboard/services/rspec_generator.rb
|
|
409
433
|
- lib/rails_error_dashboard/services/sensitive_data_filter.rb
|
|
410
434
|
- lib/rails_error_dashboard/services/severity_classifier.rb
|
|
411
435
|
- lib/rails_error_dashboard/services/similarity_calculator.rb
|
|
412
436
|
- lib/rails_error_dashboard/services/slack_payload_builder.rb
|
|
413
437
|
- lib/rails_error_dashboard/services/source_code_reader.rb
|
|
414
438
|
- lib/rails_error_dashboard/services/statistical_classifier.rb
|
|
439
|
+
- lib/rails_error_dashboard/services/swallowed_exception_tracker.rb
|
|
415
440
|
- lib/rails_error_dashboard/services/system_health_snapshot.rb
|
|
441
|
+
- lib/rails_error_dashboard/services/variable_serializer.rb
|
|
416
442
|
- lib/rails_error_dashboard/services/webhook_payload_builder.rb
|
|
417
443
|
- lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb
|
|
444
|
+
- lib/rails_error_dashboard/subscribers/rack_attack_subscriber.rb
|
|
418
445
|
- lib/rails_error_dashboard/value_objects/error_context.rb
|
|
419
446
|
- lib/rails_error_dashboard/version.rb
|
|
420
447
|
- lib/tasks/error_dashboard.rake
|
|
@@ -430,7 +457,7 @@ metadata:
|
|
|
430
457
|
bug_tracker_uri: https://github.com/AnjanJ/rails_error_dashboard/issues
|
|
431
458
|
funding_uri: https://buymeacoffee.com/anjanj
|
|
432
459
|
post_install_message: "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n
|
|
433
|
-
\ Rails Error Dashboard v0.
|
|
460
|
+
\ Rails Error Dashboard v0.4.0\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n\U0001F195
|
|
434
461
|
First time? Quick start:\n rails generate rails_error_dashboard:install\n rails
|
|
435
462
|
db:migrate\n # Add to config/routes.rb:\n mount RailsErrorDashboard::Engine
|
|
436
463
|
=> '/error_dashboard'\n\n\U0001F504 Upgrading from v0.1.x?\n rails db:migrate\n
|