Class: ActiveRecordQueryCounter::SidekiqMiddleware
- Inherits:
-
Object
- Object
- ActiveRecordQueryCounter::SidekiqMiddleware
- Includes:
- Sidekiq::ServerMiddleware
- Defined in:
- lib/active_record_query_counter/sidekiq_middleware.rb
Overview
Sidekiq middleware to count queries on a job.
Notification thresholds can be set per worker with the ‘active_record_query_counter.thresholds` key in the `sidekiq_options` hash. Valid keys are:
-
‘:query_time` - The minimum query time to send a notification for.
-
‘:row_count` - The minimum row count to send a notification for.
-
‘:transaction_time` - The minimum transaction time to send a notification for.
-
‘:transaction_count` - The minimum transaction count to send a notification for.
Thresholds can be disabled for a worker by setting ‘active_record_query_counter.thresholds` to `false`.
Instance Method Summary collapse
Instance Method Details
#call(job_instance, job_payload, queue) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/active_record_query_counter/sidekiq_middleware.rb', line 31 def call(job_instance, job_payload, queue) ActiveRecordQueryCounter.count_queries do thresholds = job_payload.dig("active_record_query_counter", "thresholds") if thresholds.is_a?(Hash) ActiveRecordQueryCounter.thresholds.set(thresholds) elsif thresholds == false ActiveRecordQueryCounter.thresholds.clear end yield end end |