module Resque::Plugins::RedCrossMonitor
Public Instance Methods
after_enqueue_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 27 def after_enqueue_send_monitor_data(*args) send_metrics('after_enqueue', *args) end
after_perform_actions(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 36 def after_perform_actions(*args) ::RedCross.flush @red_cross_job_end_time = Time.now() send_metrics('performed', *args) end
after_schedule_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 15 def after_schedule_send_monitor_data(*args) send_metrics('after_schedule', *args) end
before_delayed_enqueue_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 19 def before_delayed_enqueue_send_monitor_data(*args) send_metrics('before_delayed_enqueue', *args) end
before_enqueue_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 23 def before_enqueue_send_monitor_data(*args) send_metrics('before_enqueue', *args) end
before_perform_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 31 def before_perform_send_monitor_data(*args) @red_cross_job_start_time = Time.now() send_metrics('before_perform', *args) end
before_schedule_send_monitor_data(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 11 def before_schedule_send_monitor_data(*args) send_metrics('before_schedule', *args) end
default_event_properties(*args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 47 def default_event_properties(*args) event_properties = { class: self.name, fields: { } } event_properties[:exception] = args.shift.class.to_s if args.is_a?(Array) && args[0].is_a?(Exception) queue = Resque.queue_from_class(self) (queue && !queue.to_s.empty?) ? event_properties[:queue] = queue : event_properties[:class] event_job_method = job_method(*args) if (!event_job_method.nil? && ([String, Integer, Symbol].include? event_job_method.class)) event_properties[:event_method] = event_job_method else event_properties[:event_method] = 'no_valid_job_method' end event_properties end
job_method(*args)
click to toggle source
Hash of properties for RedCross.monitor Please add count: MY_NUMBER in case your metric value differs 1
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 6 def job_method(*args) #Add the method that triggered by the job 'no_method_job' end
on_failure_send_monitor_data(e, *args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 42 def on_failure_send_monitor_data(e, *args) @red_cross_job_end_time = Time.now() send_metrics('failed', *args) end
send_metrics(job_status, *args)
click to toggle source
# File lib/red_cross/resque/plugins/red_cross_monitor.rb, line 61 def send_metrics(job_status, *args) event_properties = default_event_properties(*args) event_properties[:fields][:run_time] = ((@red_cross_job_end_time.to_f - @red_cross_job_start_time.to_f)*1000).to_i if %w(performed failed).include? job_status ::RedCross.monitor_track(event: 'resque', properties: event_properties.merge({ job_status: job_status })) end