rails_error_dashboard 0.15.0 → 0.16.1
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 +9 -4
- data/app/controllers/rails_error_dashboard/errors_controller.rb +29 -2
- data/app/controllers/rails_error_dashboard/webhooks_controller.rb +10 -9
- data/app/helpers/rails_error_dashboard/backtrace_helper.rb +7 -14
- data/app/helpers/rails_error_dashboard/overview_helper.rb +4 -0
- data/app/jobs/rails_error_dashboard/retention_cleanup_job.rb +5 -0
- data/app/models/rails_error_dashboard/error_log.rb +11 -8
- data/app/models/rails_error_dashboard/error_occurrence.rb +1 -0
- data/app/models/rails_error_dashboard/error_occurrence_context.rb +14 -0
- data/app/views/layouts/rails_error_dashboard.html.erb +3 -1
- data/app/views/rails_error_dashboard/errors/_captured_occurrences.html.erb +45 -0
- data/app/views/rails_error_dashboard/errors/_error_info.html.erb +10 -3
- data/app/views/rails_error_dashboard/errors/_occurrence_banner.html.erb +12 -0
- data/app/views/rails_error_dashboard/errors/correlation.html.erb +2 -2
- data/app/views/rails_error_dashboard/errors/overview.html.erb +14 -7
- data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +26 -17
- data/app/views/rails_error_dashboard/errors/settings.html.erb +6 -5
- data/app/views/rails_error_dashboard/errors/show.html.erb +7 -4
- data/config/locales/de.yml +21 -1
- data/config/locales/en.yml +23 -1
- data/config/locales/es.yml +22 -1
- data/config/locales/fr.yml +22 -1
- data/config/locales/it.yml +22 -1
- data/config/locales/ja.yml +20 -1
- data/config/locales/pl.yml +23 -1
- data/config/locales/pt-BR.yml +22 -1
- data/config/locales/ru.yml +23 -1
- data/config/locales/uk.yml +23 -1
- data/config/locales/zh-CN.yml +20 -1
- data/db/migrate/20260106094256_backfill_application_for_existing_errors.rb +3 -3
- data/db/migrate/20261015000001_create_rails_error_dashboard_error_occurrence_contexts.rb +35 -0
- data/db/migrate/20261015000002_add_capture_source_to_error_occurrences_and_error_logs.rb +46 -0
- data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +14 -5
- data/lib/rails_error_dashboard/commands/batch_mute_errors.rb +11 -2
- data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +7 -2
- data/lib/rails_error_dashboard/commands/batch_unmute_errors.rb +7 -2
- data/lib/rails_error_dashboard/commands/find_or_increment_error.rb +6 -0
- data/lib/rails_error_dashboard/commands/flush_missing_translations.rb +2 -4
- data/lib/rails_error_dashboard/commands/flush_rack_attack_events.rb +2 -4
- data/lib/rails_error_dashboard/commands/flush_storm_counts.rb +7 -6
- data/lib/rails_error_dashboard/commands/flush_swallowed_exceptions.rb +2 -4
- data/lib/rails_error_dashboard/commands/log_error.rb +19 -7
- data/lib/rails_error_dashboard/commands/record_occurrence_context.rb +60 -0
- data/lib/rails_error_dashboard/configuration.rb +26 -3
- data/lib/rails_error_dashboard/error_reporter.rb +4 -2
- data/lib/rails_error_dashboard/manual_error_reporter.rb +11 -1
- data/lib/rails_error_dashboard/middleware/error_catcher.rb +18 -4
- data/lib/rails_error_dashboard/queries/analytics_stats.rb +0 -12
- data/lib/rails_error_dashboard/queries/co_occurring_errors.rb +59 -33
- data/lib/rails_error_dashboard/queries/platform_comparison.rb +55 -18
- data/lib/rails_error_dashboard/services/backtrace_processor.rb +16 -7
- data/lib/rails_error_dashboard/services/crash_capture.rb +5 -0
- data/lib/rails_error_dashboard/services/github_link_generator.rb +1 -6
- data/lib/rails_error_dashboard/services/markdown_error_formatter.rb +15 -16
- data/lib/rails_error_dashboard/services/repository_url.rb +18 -0
- data/lib/rails_error_dashboard/services/similarity_calculator.rb +3 -9
- data/lib/rails_error_dashboard/services/storm_protection/count_buffer.rb +6 -3
- data/lib/rails_error_dashboard/services/storm_protection/gate.rb +6 -1
- data/lib/rails_error_dashboard/value_objects/occurrence_snapshot.rb +23 -0
- data/lib/rails_error_dashboard/version.rb +1 -1
- data/lib/rails_error_dashboard.rb +16 -0
- data/lib/tasks/error_dashboard.rake +2 -3
- metadata +10 -2
|
@@ -23,6 +23,7 @@ begin; require "turbo-rails"; rescue LoadError; end
|
|
|
23
23
|
# Core library files
|
|
24
24
|
require "rails_error_dashboard/value_objects/error_context"
|
|
25
25
|
require "rails_error_dashboard/value_objects/llm_call_event"
|
|
26
|
+
require "rails_error_dashboard/value_objects/occurrence_snapshot"
|
|
26
27
|
require "rails_error_dashboard/integrations/o_tel"
|
|
27
28
|
require "rails_error_dashboard/integrations/tracer"
|
|
28
29
|
require "rails_error_dashboard/integrations/llm_span_processor"
|
|
@@ -59,6 +60,7 @@ require "rails_error_dashboard/services/source_code_reader"
|
|
|
59
60
|
require "rails_error_dashboard/services/git_blame_reader"
|
|
60
61
|
require "rails_error_dashboard/services/git_head_reader"
|
|
61
62
|
require "rails_error_dashboard/services/solid_queue_config_check"
|
|
63
|
+
require "rails_error_dashboard/services/repository_url"
|
|
62
64
|
require "rails_error_dashboard/services/github_link_generator"
|
|
63
65
|
require "rails_error_dashboard/services/cause_chain_extractor"
|
|
64
66
|
require "rails_error_dashboard/services/environment_snapshot"
|
|
@@ -116,6 +118,7 @@ require "rails_error_dashboard/queries/error_cascades"
|
|
|
116
118
|
require "rails_error_dashboard/queries/baseline_stats"
|
|
117
119
|
require "rails_error_dashboard/queries/platform_comparison"
|
|
118
120
|
require "rails_error_dashboard/queries/error_correlation"
|
|
121
|
+
require "rails_error_dashboard/commands/record_occurrence_context"
|
|
119
122
|
require "rails_error_dashboard/commands/log_error"
|
|
120
123
|
require "rails_error_dashboard/commands/resolve_error"
|
|
121
124
|
require "rails_error_dashboard/commands/create_issue"
|
|
@@ -226,6 +229,19 @@ module RailsErrorDashboard
|
|
|
226
229
|
remove_instance_variable(:@detected_git_sha) if defined?(@detected_git_sha)
|
|
227
230
|
end
|
|
228
231
|
|
|
232
|
+
# The name errors are filed under: config.application_name, then the
|
|
233
|
+
# APPLICATION_NAME variable, then the Rails app's module name. Capture, the
|
|
234
|
+
# storm and event flushers, and the backfill all use this one chain, or the
|
|
235
|
+
# same app's rows end up under two Applications, or under none.
|
|
236
|
+
#
|
|
237
|
+
# @return [String]
|
|
238
|
+
def self.resolved_application_name
|
|
239
|
+
configuration.application_name.presence ||
|
|
240
|
+
ENV["APPLICATION_NAME"].presence ||
|
|
241
|
+
(defined?(Rails) && Rails.application&.class&.module_parent_name) ||
|
|
242
|
+
"Rails Application"
|
|
243
|
+
end
|
|
244
|
+
|
|
229
245
|
# Register a plugin
|
|
230
246
|
# @param plugin [Plugin] The plugin instance to register
|
|
231
247
|
# @return [Boolean] True if registered successfully, false otherwise
|
|
@@ -335,9 +335,8 @@ namespace :error_dashboard do
|
|
|
335
335
|
|
|
336
336
|
desc "Backfill application_id for existing errors"
|
|
337
337
|
task backfill_application: :environment do
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
"Legacy Application"
|
|
338
|
+
# APP_NAME overrides; otherwise the name capture files new errors under
|
|
339
|
+
app_name = ENV["APP_NAME"].presence || RailsErrorDashboard.resolved_application_name
|
|
341
340
|
|
|
342
341
|
puts "\n" + "=" * 80
|
|
343
342
|
puts "RAILS ERROR DASHBOARD - BACKFILL APPLICATION"
|
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.16.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Anjan Jagirdar
|
|
@@ -312,6 +312,7 @@ files:
|
|
|
312
312
|
- app/models/rails_error_dashboard/error_log.rb
|
|
313
313
|
- app/models/rails_error_dashboard/error_logs_record.rb
|
|
314
314
|
- app/models/rails_error_dashboard/error_occurrence.rb
|
|
315
|
+
- app/models/rails_error_dashboard/error_occurrence_context.rb
|
|
315
316
|
- app/models/rails_error_dashboard/event_count.rb
|
|
316
317
|
- app/models/rails_error_dashboard/event_timing_gap.rb
|
|
317
318
|
- app/models/rails_error_dashboard/missing_translation.rb
|
|
@@ -326,6 +327,7 @@ files:
|
|
|
326
327
|
- app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb
|
|
327
328
|
- app/views/rails_error_dashboard/errors/_ai_help_panel.html.erb
|
|
328
329
|
- app/views/rails_error_dashboard/errors/_breadcrumbs_group.html.erb
|
|
330
|
+
- app/views/rails_error_dashboard/errors/_captured_occurrences.html.erb
|
|
329
331
|
- app/views/rails_error_dashboard/errors/_co_occurring_errors.html.erb
|
|
330
332
|
- app/views/rails_error_dashboard/errors/_discussion.html.erb
|
|
331
333
|
- app/views/rails_error_dashboard/errors/_error_cascades.html.erb
|
|
@@ -336,6 +338,7 @@ files:
|
|
|
336
338
|
- app/views/rails_error_dashboard/errors/_llm_summary.html.erb
|
|
337
339
|
- app/views/rails_error_dashboard/errors/_local_variables.html.erb
|
|
338
340
|
- app/views/rails_error_dashboard/errors/_modals.html.erb
|
|
341
|
+
- app/views/rails_error_dashboard/errors/_occurrence_banner.html.erb
|
|
339
342
|
- app/views/rails_error_dashboard/errors/_pattern_insights.html.erb
|
|
340
343
|
- app/views/rails_error_dashboard/errors/_request_context.html.erb
|
|
341
344
|
- app/views/rails_error_dashboard/errors/_show_scripts.html.erb
|
|
@@ -432,6 +435,8 @@ files:
|
|
|
432
435
|
- db/migrate/20260920000001_add_buckets_incomplete_to_storm_events.rb
|
|
433
436
|
- db/migrate/20260920000002_create_event_timing_gaps.rb
|
|
434
437
|
- db/migrate/20261010000001_create_missing_translations.rb
|
|
438
|
+
- db/migrate/20261015000001_create_rails_error_dashboard_error_occurrence_contexts.rb
|
|
439
|
+
- db/migrate/20261015000002_add_capture_source_to_error_occurrences_and_error_logs.rb
|
|
435
440
|
- lib/generators/rails_error_dashboard/install/install_generator.rb
|
|
436
441
|
- lib/generators/rails_error_dashboard/install/templates/README
|
|
437
442
|
- lib/generators/rails_error_dashboard/install/templates/initializer.rb
|
|
@@ -459,6 +464,7 @@ files:
|
|
|
459
464
|
- lib/rails_error_dashboard/commands/link_existing_issue.rb
|
|
460
465
|
- lib/rails_error_dashboard/commands/log_error.rb
|
|
461
466
|
- lib/rails_error_dashboard/commands/mute_error.rb
|
|
467
|
+
- lib/rails_error_dashboard/commands/record_occurrence_context.rb
|
|
462
468
|
- lib/rails_error_dashboard/commands/resolve_error.rb
|
|
463
469
|
- lib/rails_error_dashboard/commands/scrub_invalid_encoding.rb
|
|
464
470
|
- lib/rails_error_dashboard/commands/snooze_error.rb
|
|
@@ -573,6 +579,7 @@ files:
|
|
|
573
579
|
- lib/rails_error_dashboard/services/platform_detector.rb
|
|
574
580
|
- lib/rails_error_dashboard/services/priority_score_calculator.rb
|
|
575
581
|
- lib/rails_error_dashboard/services/rack_attack_tracker.rb
|
|
582
|
+
- lib/rails_error_dashboard/services/repository_url.rb
|
|
576
583
|
- lib/rails_error_dashboard/services/resolution_callbacks.rb
|
|
577
584
|
- lib/rails_error_dashboard/services/rspec_generator.rb
|
|
578
585
|
- lib/rails_error_dashboard/services/sensitive_data_filter.rb
|
|
@@ -605,6 +612,7 @@ files:
|
|
|
605
612
|
- lib/rails_error_dashboard/translation.rb
|
|
606
613
|
- lib/rails_error_dashboard/value_objects/error_context.rb
|
|
607
614
|
- lib/rails_error_dashboard/value_objects/llm_call_event.rb
|
|
615
|
+
- lib/rails_error_dashboard/value_objects/occurrence_snapshot.rb
|
|
608
616
|
- lib/rails_error_dashboard/version.rb
|
|
609
617
|
- lib/tasks/error_dashboard.rake
|
|
610
618
|
- lib/tasks/rails_error_dashboard_tasks.rake
|
|
@@ -620,7 +628,7 @@ metadata:
|
|
|
620
628
|
funding_uri: https://github.com/sponsors/AnjanJ
|
|
621
629
|
post_install_message: |
|
|
622
630
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
623
|
-
RED (Rails Error Dashboard) v0.
|
|
631
|
+
RED (Rails Error Dashboard) v0.16.1
|
|
624
632
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
625
633
|
|
|
626
634
|
First install:
|