red_cross 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
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