red_cross 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b1d776661a89ad9f7eb6d0c59f8aecb11cd36f6
4
- data.tar.gz: 9528d65193ab657560be5527413caa9231e39457
3
+ metadata.gz: c4ef8509ec9795cffb59a04f51946fb0ce2b7e00
4
+ data.tar.gz: 73372e2dd188696ef7b24beb4ab01ee791827104
5
5
  SHA512:
6
- metadata.gz: d31748feb72554b02708fd9a82a605493b10d2f4e94f396d1910743d3aec774c59487a3d9241ad853fd0b08327a8029577813136167b68c28059d2ac6e1aa01b
7
- data.tar.gz: c125b0e77c839d7453a855968f4293c3337afcb52ff4591b14b8d7d9c2405525810f9dc8a010b014791c08b896ed3fa25bca37db5850e940e1655b07c1415995
6
+ metadata.gz: 2caf6c18bd0906f99030f8c32948113d5173a14773594887491a299c4e66ea98b5738203dd9d9725083afb00ecffc337f167b9d0ed3925f8900282a65fa7a58f
7
+ data.tar.gz: 2d6e8aab563f688228b46a2f995f36aaa7aec7f2b25ca05386c8e8c4466b2debe0cfbbd4dcde2dc9516b4be00c82c3b0f1d5e8d607f54b9980f3b14b2ae0fce0
@@ -0,0 +1,65 @@
1
+ module Resque
2
+ module Plugins
3
+ module RedCrossMonitor
4
+ # Hash of properties for RedCross.monitor
5
+ # Please add count: MY_NUMBER in case your metric value differs 1
6
+ def job_method(*args)
7
+ #Add the method that triggered by the job
8
+ 'no_job_method'
9
+ end
10
+
11
+ def before_schedule_send_monitor_data(*args)
12
+ send_metrics('before_schedule', *args)
13
+ end
14
+
15
+ def after_schedule_send_monitor_data(*args)
16
+ send_metrics('after_schedule', *args)
17
+ end
18
+
19
+ def before_delayed_enqueue_send_monitor_data(*args)
20
+ send_metrics('before_delayed_enqueue', *args)
21
+ end
22
+
23
+ def before_enqueue_send_monitor_data(*args)
24
+ send_metrics('before_enqueue', *args)
25
+ end
26
+
27
+ def after_enqueue_send_monitor_data(*args)
28
+ send_metrics('after_enqueue', *args)
29
+ end
30
+
31
+ def before_perform_send_monitor_data(*args)
32
+ @job_start_time = Time.now()
33
+ send_metrics('before_perform', *args)
34
+ end
35
+
36
+ def after_perform_actions(*args)
37
+ ::RedCross.flush
38
+ @job_end_time = Time.now()
39
+ send_metrics('performed', *args)
40
+ end
41
+
42
+ def on_failure_send_monitor_data(e, *args)
43
+ @job_end_time = Time.now()
44
+ send_metrics('failed', *args)
45
+ end
46
+
47
+ def default_event_properties(*args)
48
+ @event_properties ||= { fields: { } }
49
+ @event_properties[:class] ||= self.name
50
+ event_job_method = @event_properties[:event_method].nil? ? job_method(*args) : @event_properties[:event_method]
51
+ if (!event_job_method.nil? && ([String, Integer, Symbol].include? event_job_method.class))
52
+ @event_properties[:event_method] = event_job_method
53
+ else
54
+ @event_properties[:event_method] = 'no_valid_job_method'
55
+ end
56
+ end
57
+
58
+ def send_metrics(job_status, *args)
59
+ default_event_properties(*args)
60
+ @event_properties[:fields][:run_time] = ((@job_end_time - @job_start_time)*1000).to_i if %w(performed failed).include? job_status
61
+ ::RedCross.monitor_track(event: 'resque', properties: @event_properties.merge({ job_status: job_status }))
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,15 @@
1
+ module Resque
2
+ module Scheduler
3
+ module DelayingExtensions
4
+ alias default_last_enqueued_at last_enqueued_at
5
+ def last_enqueued_at(name, timestemp)
6
+ properties = {
7
+ task_name: name,
8
+ status: 'enqueued'
9
+ }
10
+ RedCross.monitor_track(event: 'resque_scheduler', properties: properties)
11
+ default_last_enqueued_at(name, timestemp)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module RedCross
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.8"
3
3
  end
data/lib/red_cross.rb CHANGED
@@ -2,7 +2,6 @@ require 'red_cross/version'
2
2
  require 'red_cross/configuration'
3
3
  require 'segment'
4
4
  require 'typhoeus'
5
- require 'resque/plugins/red_cross_async'
6
5
  require 'resque'
7
6
  require 'influxdb'
8
7
  require 'red_cross/logger'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red_cross
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - ronbarab
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-02 00:00:00.000000000 Z
11
+ date: 2017-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: analytics-ruby
@@ -115,12 +115,13 @@ files:
115
115
  - lib/red_cross.rb
116
116
  - lib/red_cross/configuration.rb
117
117
  - lib/red_cross/logger.rb
118
+ - lib/red_cross/resque/plugins/red_cross_monitor.rb
119
+ - lib/red_cross/resque/scheduler.rb
118
120
  - lib/red_cross/trackers/base.rb
119
121
  - lib/red_cross/trackers/http_tracker.rb
120
122
  - lib/red_cross/trackers/monitor_tracker.rb
121
123
  - lib/red_cross/trackers/segment_tracker.rb
122
124
  - lib/red_cross/version.rb
123
- - lib/resque/plugins/red_cross_async.rb
124
125
  - red_cross.gemspec
125
126
  homepage: https://github.com/YotpoLtd
126
127
  licenses:
@@ -1,30 +0,0 @@
1
- module Resque
2
- module Plugins
3
- module RedCrossAsync
4
- # Hash of properties for RedCross.monitor
5
- # Please add count: MY_NUMBER in case your metric value differs 1
6
- def properties(*args)
7
- {}
8
- end
9
-
10
- def after_perform_actions(*args)
11
- RedCross.flush
12
- send_metrics('performed', *args)
13
- end
14
-
15
- def before_perform_send_monitor_data(*args)
16
- send_metrics('before_perform', *args)
17
- end
18
-
19
- def on_failure_send_monitor_data(e, *args)
20
- send_metrics('failed', *args)
21
- end
22
-
23
- private
24
-
25
- def send_metrics(event_type, *args)
26
- RedCross.monitor_track(event: 'resque_job_' + event_type, properties: { class: self.name }.merge(properties(*args)))
27
- end
28
- end
29
- end
30
- end