class AppMonit::Rails::Subscriber
Public Class Methods
register()
click to toggle source
# File lib/app_monit/rails/subscriber.rb, line 6 def register ActiveSupport::Notifications.subscribe /process_action/, self.new end
Public Instance Methods
call(*args)
click to toggle source
# 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)
click to toggle source
# 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
trigger_event(minute, endpoint, durations)
click to toggle source
# File lib/app_monit/rails/subscriber.rb, line 43 def trigger_event(minute, endpoint, durations) event = AppMonit::Rails::Event.new(minute, endpoint, durations) AppMonit::Rails.logger.debug event worker.push(event) end
worker()
click to toggle source
@return [AppMonit::Worker]
# File lib/app_monit/rails/subscriber.rb, line 33 def worker AppMonit::Rails::Worker.instance end