Class: RailsErrorDashboard::Queries::RackAttackSummary
- Inherits:
-
Object
- Object
- RailsErrorDashboard::Queries::RackAttackSummary
- Defined in:
- lib/rails_error_dashboard/queries/rack_attack_summary.rb
Overview
Query: Aggregate Rack Attack events from the rack_attack_events table.
Previously this scanned every error_log's breadcrumbs JSON in Ruby, which was both expensive (full-table scan + JSON.parse per row) and incomplete (events were only stored when an unrelated error happened to occur in the same request). Events now have their own table, so this is indexed SQL.
Returns rows grouped by rule with counts, unique discriminators (IPs), the most frequent path, and last-seen timestamps.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(days = 30, application_id: nil) ⇒ RackAttackSummary
constructor
A new instance of RackAttackSummary.
Constructor Details
#initialize(days = 30, application_id: nil) ⇒ RackAttackSummary
Returns a new instance of RackAttackSummary.
19 20 21 22 23 |
# File 'lib/rails_error_dashboard/queries/rack_attack_summary.rb', line 19 def initialize(days = 30, application_id: nil) @days = days @application_id = application_id @start_date = days.days.ago end |
Class Method Details
.call(days = 30, application_id: nil) ⇒ Object
15 16 17 |
# File 'lib/rails_error_dashboard/queries/rack_attack_summary.rb', line 15 def self.call(days = 30, application_id: nil) new(days, application_id: application_id).call end |
Instance Method Details
#call ⇒ Object
25 26 27 28 29 |
# File 'lib/rails_error_dashboard/queries/rack_attack_summary.rb', line 25 def call { events: aggregated_events } end |