Class: AppMonit::Rails::Subscriber
- Inherits:
-
Object
- Object
- AppMonit::Rails::Subscriber
- Defined in:
- lib/app_monit/rails/subscriber.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call(*args) ⇒ Object
- #trigger_error(minute, endpoint, duration) ⇒ Object
- #trigger_event(minute, endpoint, durations) ⇒ Object
- #worker ⇒ AppMonit::Worker
Class Method Details
.register ⇒ Object
6 7 8 |
# File 'lib/app_monit/rails/subscriber.rb', line 6 def register ActiveSupport::Notifications.subscribe /process_action/, self.new end |
Instance Method Details
#call(*args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/app_monit/rails/subscriber.rb', line 11 def call(*args) event = ActiveSupport::Notifications::Event.new(*args) payload = event.payload endpoint = "#{payload[:controller]}##{payload[:action]}" return if AppMonit::Rails::Config.skipped_endpoints.include?(endpoint) minute = event.time.to_i - (event.time.to_i % 60) if payload[:exception] trigger_error(minute, endpoint, event.duration.to_i) trigger_error(minute, 'total', event.duration.to_i) else durations = { total: event.duration.to_i, view: payload[:view_runtime].to_i, db: payload[:db_runtime].to_i, ext: payload[:ext_runtime].to_i } trigger_event(minute, endpoint, durations) trigger_event(minute, 'total', durations) end end |
#trigger_error(minute, endpoint, duration) ⇒ Object
37 38 39 40 41 |
# File 'lib/app_monit/rails/subscriber.rb', line 37 def trigger_error(minute, endpoint, duration) event = AppMonit::Rails::Error.new(minute, endpoint, duration) AppMonit::Rails.logger.debug event worker.push(event) end |