Module: Resque::Plugins::RedCrossMonitor
- Defined in:
- lib/red_cross/resque/plugins/red_cross_monitor.rb
Instance Method Summary collapse
- #after_enqueue_send_monitor_data(*args) ⇒ Object
- #after_perform_actions(*args) ⇒ Object
- #after_schedule_send_monitor_data(*args) ⇒ Object
- #before_delayed_enqueue_send_monitor_data(*args) ⇒ Object
- #before_enqueue_send_monitor_data(*args) ⇒ Object
- #before_perform_send_monitor_data(*args) ⇒ Object
- #before_schedule_send_monitor_data(*args) ⇒ Object
- #default_event_properties(*args) ⇒ Object
-
#job_method(*args) ⇒ Object
Hash of properties for RedCross.monitor Please add count: MY_NUMBER in case your metric value differs 1.
- #on_failure_send_monitor_data(e, *args) ⇒ Object
- #send_metrics(job_status, *args) ⇒ Object
Instance Method Details
#after_enqueue_send_monitor_data(*args) ⇒ Object
27 28 29 |
# 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) ⇒ Object
36 37 38 39 40 |
# 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) ⇒ Object
15 16 17 |
# 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) ⇒ Object
19 20 21 |
# 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) ⇒ Object
23 24 25 |
# 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) ⇒ Object
31 32 33 34 |
# 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) ⇒ Object
11 12 13 |
# 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) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# 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) ⇒ Object
Hash of properties for RedCross.monitor Please add count: MY_NUMBER in case your metric value differs 1
6 7 8 9 |
# 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) ⇒ Object
42 43 44 45 |
# 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) ⇒ Object
61 62 63 64 65 |
# 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 |