resque-cloudwatch-monitor 0.0.3 → 0.1.0
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 +8 -8
- data/lib/resque-cloudwatch-monitor.rb +2 -2
- data/lib/resque/plugins/{cloudwatch-monitor/cloudwatch-monitor.rb → cloudwatch-monitor.rb} +12 -22
- data/lib/resque/plugins/cloudwatch-monitor/configuration.rb +44 -1
- data/lib/resque/plugins/cloudwatch-monitor/version.rb +2 -2
- data/spec/spec_helper.rb +7 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODdlZThhMDU0YmZiY2RiZjhjNjgzOTQ5NzhjYzJkNzcxM2Y3NDZjOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzVmNmM2MDQ3ZGE0YzYwZDc4NWQ3ZWZiZjRmMzIxYWM0Y2EyMjJiNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTg1MjNhNTM4NGFmNjdkNmU2ODg4NmE2NmE0ZjM4OGViYmJhOTllY2VjYzEx
|
10
|
+
ODZkYTVlYTY0Zjc3MTA5MDEwYzllZDdjYzQxYTMxNzQwNGZmZGE2MmUyZTA2
|
11
|
+
MDEyNmM5NDA1Zjk4ODI2MTc4ODZiMjY1ZWY0ZGEwZmNmMWQ4MjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGJhNzg0Y2YxMDgxNGFjZmEwMzk0ZDU3MTgwNmJkMjgzYjU2YzBmN2MwZWZj
|
14
|
+
ZWVhMmVlZDc3ZTNkM2Q0ZmIyZGI1Y2VjMjM5YWU4YmViODZiMGM4Njk3MTdh
|
15
|
+
Zjg0NGI2ZWI2Yjk5Zjg0M2FhYzI2MGMxMTdiMWZjM2NjMDZjNzc=
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'resque'
|
2
2
|
|
3
|
-
require 'resque/plugins/cloudwatch-monitor/cloudwatch-monitor'
|
4
3
|
require 'resque/plugins/cloudwatch-monitor/configuration'
|
5
|
-
require 'resque/plugins/cloudwatch-monitor/version'
|
4
|
+
require 'resque/plugins/cloudwatch-monitor/version'
|
5
|
+
require 'resque/plugins/cloudwatch-monitor'
|
@@ -3,19 +3,12 @@ module Resque
|
|
3
3
|
|
4
4
|
module CloudwatchMonitor
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
Configuration.namespace
|
6
|
+
def get_namespace(type)
|
7
|
+
Configuration.get_namespace_for(type)
|
9
8
|
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
Configuration.fail_namespace
|
14
|
-
end
|
15
|
-
|
16
|
-
#Cloudwatch Custom Metric Namespace For Before Performed Jobs
|
17
|
-
def perform_namespace
|
18
|
-
Configuration.perform_namespace
|
10
|
+
def should_report?(type)
|
11
|
+
Configuration.should_report?(type)
|
19
12
|
end
|
20
13
|
|
21
14
|
#Cloudwatch metric name
|
@@ -43,19 +36,16 @@ module Resque
|
|
43
36
|
1
|
44
37
|
end
|
45
38
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
def before_perform_report_cw(*args)
|
53
|
-
report_dimensions = dimensions(*args)
|
54
|
-
report(perform_namespace, metric_name, report_dimensions)
|
39
|
+
Configuration.event_list.each do |type|
|
40
|
+
define_method("#{type}_report_cw") do |e, *args|
|
41
|
+
report(type, *args)
|
42
|
+
end
|
55
43
|
end
|
56
44
|
|
57
45
|
private
|
58
|
-
def report(
|
46
|
+
def report(type, *args)
|
47
|
+
return unless should_report?(type)
|
48
|
+
report_dimensions = dimensions(*args)
|
59
49
|
report_dimensions ||= []
|
60
50
|
report_dimensions.delete_if{|key| key[:value].nil? || key[:name].nil? }
|
61
51
|
metric_data = {
|
@@ -65,7 +55,7 @@ module Resque
|
|
65
55
|
value: value,
|
66
56
|
unit: unit.to_s
|
67
57
|
}
|
68
|
-
report_namespace
|
58
|
+
report_namespace = get_namespace(type)
|
69
59
|
#Send to metrics. One general of the queue and another one with dimensions if custom dimensions
|
70
60
|
metrics_to_send = report_dimensions.empty? ? [metric_data] : [metric_data, metric_data.merge(dimensions: [])]
|
71
61
|
|
@@ -4,11 +4,54 @@ module Resque
|
|
4
4
|
module Configuration
|
5
5
|
class << self
|
6
6
|
|
7
|
-
attr_accessor :
|
7
|
+
attr_accessor :cloudwatch_client
|
8
8
|
|
9
|
+
@@report_on = {
|
10
|
+
before_perform: false,
|
11
|
+
after_perform: false,
|
12
|
+
on_failure: false,
|
13
|
+
after_enqueue: false,
|
14
|
+
before_enqueue: false,
|
15
|
+
after_dequeue: false,
|
16
|
+
before_dequeue: false
|
17
|
+
}
|
18
|
+
|
19
|
+
@@report_namespace = {
|
20
|
+
before_perform: 'Resque before_perform',
|
21
|
+
after_perform: 'Resque after_perform',
|
22
|
+
on_failure: 'Resque on_failure',
|
23
|
+
after_enqueue: 'Resque after_enqueue',
|
24
|
+
before_enqueue: 'Resque before_enqueue',
|
25
|
+
after_dequeue: 'Resque after_dequeue',
|
26
|
+
before_dequeue: 'Resque before_dequeue'
|
27
|
+
}
|
9
28
|
def configure
|
10
29
|
yield self
|
11
30
|
end
|
31
|
+
|
32
|
+
def should_report?(type)
|
33
|
+
@@report_on[type]
|
34
|
+
end
|
35
|
+
|
36
|
+
def do_not_report_on(type)
|
37
|
+
@@report_on[type] = false
|
38
|
+
end
|
39
|
+
|
40
|
+
def report_on(type)
|
41
|
+
@@report_on[type] = true
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_namespace_for(type)
|
45
|
+
@@report_namespace[type]
|
46
|
+
end
|
47
|
+
|
48
|
+
def set_namespace_for(type, namespace)
|
49
|
+
@@report_namespace[type] = namespace
|
50
|
+
end
|
51
|
+
|
52
|
+
def event_list
|
53
|
+
@@report_on.keys
|
54
|
+
end
|
12
55
|
end
|
13
56
|
end
|
14
57
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -17,9 +17,13 @@ class CloudWatchMonitorTest
|
|
17
17
|
end
|
18
18
|
|
19
19
|
Resque::Plugins::CloudwatchMonitor::Configuration.configure do |config|
|
20
|
-
config.
|
21
|
-
config.
|
22
|
-
config.
|
20
|
+
config.set_namespace_for(:on_failure, 'Resque Failures')
|
21
|
+
config.set_namespace_for(:after_perform, 'Resque Success')
|
22
|
+
config.set_namespace_for(:before_perform, 'Resque Perform')
|
23
|
+
config.report_on(:on_failure)
|
24
|
+
config.report_on(:after_perform)
|
25
|
+
config.report_on(:before_perform)
|
26
|
+
|
23
27
|
config.cloudwatch_client = AWS::CloudWatch::Client.new
|
24
28
|
end
|
25
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-cloudwatch-monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yotpo/avichay@yotpo, Yotpo/vlad@yotpo.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: resque
|
@@ -89,7 +89,7 @@ files:
|
|
89
89
|
- LICENSE
|
90
90
|
- README.md
|
91
91
|
- lib/resque-cloudwatch-monitor.rb
|
92
|
-
- lib/resque/plugins/cloudwatch-monitor
|
92
|
+
- lib/resque/plugins/cloudwatch-monitor.rb
|
93
93
|
- lib/resque/plugins/cloudwatch-monitor/configuration.rb
|
94
94
|
- lib/resque/plugins/cloudwatch-monitor/version.rb
|
95
95
|
- resque-cloudwatch-monitor.gemspec
|