Module: RailsErrorDashboard
- Defined in:
- lib/rails_error_dashboard/error_reporter.rb,
lib/rails_error_dashboard.rb,
lib/rails_error_dashboard/engine.rb,
lib/rails_error_dashboard/logger.rb,
lib/rails_error_dashboard/plugin.rb,
lib/rails_error_dashboard/version.rb,
lib/rails_error_dashboard/configuration.rb,
lib/rails_error_dashboard/plugin_registry.rb,
app/models/rails_error_dashboard/error_log.rb,
lib/rails_error_dashboard/commands/log_error.rb,
lib/rails_error_dashboard/queries/mttr_stats.rb,
lib/rails_error_dashboard/queries/errors_list.rb,
app/jobs/rails_error_dashboard/application_job.rb,
app/models/rails_error_dashboard/error_comment.rb,
app/models/rails_error_dashboard/error_baseline.rb,
app/models/rails_error_dashboard/cascade_pattern.rb,
lib/rails_error_dashboard/commands/resolve_error.rb,
lib/rails_error_dashboard/plugins/metrics_plugin.rb,
lib/rails_error_dashboard/queries/baseline_stats.rb,
lib/rails_error_dashboard/queries/error_cascades.rb,
lib/rails_error_dashboard/queries/filter_options.rb,
lib/rails_error_dashboard/queries/similar_errors.rb,
app/helpers/rails_error_dashboard/overview_helper.rb,
app/jobs/rails_error_dashboard/baseline_alert_job.rb,
app/models/rails_error_dashboard/error_occurrence.rb,
lib/rails_error_dashboard/middleware/rate_limiter.rb,
lib/rails_error_dashboard/queries/analytics_stats.rb,
lib/rails_error_dashboard/queries/dashboard_stats.rb,
app/helpers/rails_error_dashboard/backtrace_helper.rb,
app/models/rails_error_dashboard/error_logs_record.rb,
lib/rails_error_dashboard/middleware/error_catcher.rb,
lib/rails_error_dashboard/plugins/audit_log_plugin.rb,
lib/rails_error_dashboard/queries/recurring_issues.rb,
app/helpers/rails_error_dashboard/user_agent_helper.rb,
lib/rails_error_dashboard/queries/error_correlation.rb,
lib/rails_error_dashboard/services/backtrace_parser.rb,
lib/rails_error_dashboard/services/cascade_detector.rb,
lib/rails_error_dashboard/services/pattern_detector.rb,
app/helpers/rails_error_dashboard/application_helper.rb,
app/mailers/rails_error_dashboard/application_mailer.rb,
lib/rails_error_dashboard/services/platform_detector.rb,
lib/rails_error_dashboard/queries/co_occurring_errors.rb,
lib/rails_error_dashboard/queries/platform_comparison.rb,
lib/rails_error_dashboard/value_objects/error_context.rb,
app/jobs/rails_error_dashboard/async_error_logging_job.rb,
lib/rails_error_dashboard/commands/batch_delete_errors.rb,
lib/rails_error_dashboard/services/baseline_calculator.rb,
app/controllers/rails_error_dashboard/errors_controller.rb,
lib/rails_error_dashboard/commands/batch_resolve_errors.rb,
lib/rails_error_dashboard/services/similarity_calculator.rb,
lib/rails_error_dashboard/plugins/jira_integration_plugin.rb,
app/jobs/rails_error_dashboard/email_error_notification_job.rb,
app/jobs/rails_error_dashboard/slack_error_notification_job.rb,
app/mailers/rails_error_dashboard/error_notification_mailer.rb,
lib/rails_error_dashboard/services/baseline_alert_throttler.rb,
app/controllers/rails_error_dashboard/application_controller.rb,
app/jobs/rails_error_dashboard/discord_error_notification_job.rb,
app/jobs/rails_error_dashboard/webhook_error_notification_job.rb,
lib/generators/rails_error_dashboard/install/install_generator.rb,
app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb,
lib/generators/rails_error_dashboard/uninstall/uninstall_generator.rb,
lib/generators/rails_error_dashboard/solid_queue/solid_queue_generator.rb
Overview
Rack Middleware: Final safety net for uncaught errors This catches errors that somehow escape controller error handling Positioned at the Rack layer (outermost layer of Rails)
Middleware stack order (outer to inner):
-
ErrorCatcher (this file) ← Catches everything
-
ActionDispatch middleware
-
Rails routing
-
Controllers (with ErrorHandler concern)
This ensures NO error goes unreported
Defined Under Namespace
Modules: ApplicationHelper, BacktraceHelper, Commands, Generators, Logger, Middleware, OverviewHelper, Plugins, Queries, Services, UserAgentHelper, ValueObjects Classes: ApplicationController, ApplicationJob, ApplicationMailer, AsyncErrorLoggingJob, BaselineAlertJob, CascadePattern, Configuration, DiscordErrorNotificationJob, EmailErrorNotificationJob, Engine, ErrorBaseline, ErrorComment, ErrorLog, ErrorLogsRecord, ErrorNotificationMailer, ErrorOccurrence, ErrorReporter, ErrorsController, PagerdutyErrorNotificationJob, Plugin, PluginRegistry, SlackErrorNotificationJob, WebhookErrorNotificationJob
Constant Summary collapse
- VERSION =
"0.1.8"
Class Attribute Summary collapse
-
.configuration ⇒ Object
Get or initialize configuration.
Class Method Summary collapse
-
.configure {|configuration| ... } ⇒ Object
Configure the gem.
-
.on_critical_error(&block) ⇒ Object
Register a callback for when a critical error is logged.
-
.on_error_logged(&block) ⇒ Object
Register a callback for when any error is logged.
-
.on_error_resolved(&block) ⇒ Object
Register a callback for when an error is resolved.
-
.plugins ⇒ Array<Plugin>
Get all registered plugins.
-
.register_plugin(plugin) ⇒ Boolean
Register a plugin.
-
.reset_configuration! ⇒ Object
Reset configuration to defaults.
-
.unregister_plugin(plugin_name) ⇒ Object
Unregister a plugin by name.
Class Attribute Details
.configuration ⇒ Object
Get or initialize configuration
52 53 54 |
# File 'lib/rails_error_dashboard.rb', line 52 def configuration @configuration ||= Configuration.new end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
Configure the gem
57 58 59 |
# File 'lib/rails_error_dashboard.rb', line 57 def configure yield(configuration) end |
.on_critical_error(&block) ⇒ Object
Register a callback for when a critical error is logged
102 103 104 |
# File 'lib/rails_error_dashboard.rb', line 102 def self.on_critical_error(&block) configuration.notification_callbacks[:critical_error] << block if block_given? end |
.on_error_logged(&block) ⇒ Object
Register a callback for when any error is logged
92 93 94 |
# File 'lib/rails_error_dashboard.rb', line 92 def self.on_error_logged(&block) configuration.notification_callbacks[:error_logged] << block if block_given? end |
.on_error_resolved(&block) ⇒ Object
Register a callback for when an error is resolved
112 113 114 |
# File 'lib/rails_error_dashboard.rb', line 112 def self.on_error_resolved(&block) configuration.notification_callbacks[:error_resolved] << block if block_given? end |
.plugins ⇒ Array<Plugin>
Get all registered plugins
82 83 84 |
# File 'lib/rails_error_dashboard.rb', line 82 def self.plugins PluginRegistry.plugins end |
.register_plugin(plugin) ⇒ Boolean
Register a plugin
70 71 72 |
# File 'lib/rails_error_dashboard.rb', line 70 def self.register_plugin(plugin) PluginRegistry.register(plugin) end |
.reset_configuration! ⇒ Object
Reset configuration to defaults
62 63 64 |
# File 'lib/rails_error_dashboard.rb', line 62 def reset_configuration! @configuration = Configuration.new end |
.unregister_plugin(plugin_name) ⇒ Object
Unregister a plugin by name
76 77 78 |
# File 'lib/rails_error_dashboard.rb', line 76 def self.unregister_plugin(plugin_name) PluginRegistry.unregister(plugin_name) end |