metriks-addons 2.3.0 → 3.0.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 +4 -4
- data/lib/metriks-addons.rb +4 -4
- data/lib/metriks-addons/base_reporter.rb +69 -0
- data/lib/{metriks → metriks-addons}/cloudwatch_reporter.rb +13 -79
- data/lib/{metriks → metriks-addons}/opentsdb_reporter.rb +4 -64
- data/lib/{metriks → metriks-addons}/signalfx_reporter.rb +11 -77
- data/metriks-addons.gemspec +6 -5
- data/spec/cloudwatch_spec.rb +19 -68
- data/spec/opentsdb_spec.rb +3 -3
- data/spec/signalfx_spec.rb +17 -57
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17f951f96c43d837060bdb4082615c71412876e9
|
4
|
+
data.tar.gz: ca27fb4cb369aa02929c730a6b5e2f2b21a41ec4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c00d29c77472b45a5b81628bce4a36718cb4852e65bfbf40815cb68fbb49729c0e976ecee59ae6befb9abfdafe9988897b523ec64f39f6c92bf7ee4b6c79e2ab
|
7
|
+
data.tar.gz: c18b42e521ad1eb8667008b92ebe041b06adbdf278b9c31697abc0007eff60f65749243e4c957fea0e61aa686133f97d9a83f01c4f91b1c274844c93f0b5f2fa
|
data/lib/metriks-addons.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require '
|
1
|
+
require 'metriks_addons/opentsdb_reporter'
|
2
|
+
require 'metriks_addons/signalfx_reporter'
|
3
|
+
require 'metriks_addons/cloudwatch_reporter'
|
4
4
|
|
5
5
|
module MetriksAddons
|
6
|
-
VERSION = '
|
6
|
+
VERSION = '3.0.0'
|
7
7
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module MetriksAddons
|
2
|
+
class BaseReporter
|
3
|
+
def initialize(options = {})
|
4
|
+
@logger = options[:logger] || nil
|
5
|
+
@registry = options[:registry] || Metriks::Registry.default
|
6
|
+
@interval = options[:interval] || 60
|
7
|
+
@time_tracker = Metriks::TimeTracker.new(@interval)
|
8
|
+
@on_error = options[:on_error] || proc { |ex| }
|
9
|
+
|
10
|
+
if options[:percentiles]
|
11
|
+
@percentiles = options[:percentiles]
|
12
|
+
else
|
13
|
+
@percentiles = [ 0.95, 0.99]
|
14
|
+
end
|
15
|
+
|
16
|
+
@mutex = Mutex.new
|
17
|
+
@running = false
|
18
|
+
end
|
19
|
+
|
20
|
+
def start
|
21
|
+
if @thread && @thread.alive?
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
@running = true
|
26
|
+
@thread = Thread.new do
|
27
|
+
while @running
|
28
|
+
@time_tracker.sleep
|
29
|
+
|
30
|
+
Thread.new do
|
31
|
+
flush
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def stop
|
38
|
+
@running = false
|
39
|
+
|
40
|
+
if @thread
|
41
|
+
@thread.join
|
42
|
+
@thread = nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def restart
|
47
|
+
stop
|
48
|
+
start
|
49
|
+
end
|
50
|
+
|
51
|
+
def flush
|
52
|
+
begin
|
53
|
+
@mutex.synchronize do
|
54
|
+
log "debug", "Flushing metrics"
|
55
|
+
submit get_datapoints
|
56
|
+
end
|
57
|
+
rescue Exception => ex
|
58
|
+
log "error",ex.message
|
59
|
+
@on_error[ex] rescue nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def log(level, msg)
|
64
|
+
if !@logger.nil?
|
65
|
+
@logger.send level, msg
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -2,12 +2,14 @@ require 'metriks/time_tracker'
|
|
2
2
|
require 'logger'
|
3
3
|
require 'aws'
|
4
4
|
require 'time'
|
5
|
+
require 'metriks-addons/base_reporter'
|
5
6
|
|
6
|
-
module
|
7
|
-
class CloudWatchReporter
|
7
|
+
module MetriksAddons
|
8
|
+
class CloudWatchReporter < BaseReporter
|
8
9
|
attr_accessor :prefix, :source, :cw, :tags, :logger
|
9
10
|
|
10
11
|
def initialize(access_key, secret_key, namespace, tags, options = {})
|
12
|
+
super(options)
|
11
13
|
@cw = AWS::CloudWatch.new(:access_key_id => access_key, :secret_access_key => secret_key)
|
12
14
|
@namespace = namespace
|
13
15
|
@dimensions = get_dimensions(tags)
|
@@ -15,70 +17,7 @@ module Metriks
|
|
15
17
|
@prefix = options[:prefix]
|
16
18
|
@source = options[:source]
|
17
19
|
|
18
|
-
@logger = options[:logger] || nil
|
19
20
|
@batch_size = options[:batch_size] || 50
|
20
|
-
@registry = options[:registry] || Metriks::Registry.default
|
21
|
-
@interval = options[:interval] || 60
|
22
|
-
@time_tracker = Metriks::TimeTracker.new(@interval)
|
23
|
-
@on_error = options[:on_error] || proc { |ex| }
|
24
|
-
|
25
|
-
if options[:percentiles]
|
26
|
-
@percentiles = options[:percentiles]
|
27
|
-
else
|
28
|
-
@percentiles = [ 0.95, 0.99]
|
29
|
-
end
|
30
|
-
|
31
|
-
@mutex = Mutex.new
|
32
|
-
@running = false
|
33
|
-
end
|
34
|
-
|
35
|
-
def log(level, msg)
|
36
|
-
if !@logger.nil?
|
37
|
-
@logger.send level, msg
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def start
|
42
|
-
if @thread && @thread.alive?
|
43
|
-
return
|
44
|
-
end
|
45
|
-
|
46
|
-
@running = true
|
47
|
-
@thread = Thread.new do
|
48
|
-
while @running
|
49
|
-
@time_tracker.sleep
|
50
|
-
|
51
|
-
Thread.new do
|
52
|
-
flush
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def stop
|
59
|
-
@running = false
|
60
|
-
|
61
|
-
if @thread
|
62
|
-
@thread.join
|
63
|
-
@thread = nil
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def restart
|
68
|
-
stop
|
69
|
-
start
|
70
|
-
end
|
71
|
-
|
72
|
-
def flush
|
73
|
-
begin
|
74
|
-
@mutex.synchronize do
|
75
|
-
log "debug", "Flushing metrics"
|
76
|
-
submit get_datapoints
|
77
|
-
end
|
78
|
-
rescue Exception => ex
|
79
|
-
log "error",ex.message
|
80
|
-
@on_error[ex] rescue nil
|
81
|
-
end
|
82
21
|
end
|
83
22
|
|
84
23
|
def submit(datapoints)
|
@@ -103,11 +42,9 @@ module Metriks
|
|
103
42
|
case metric
|
104
43
|
when Metriks::Meter
|
105
44
|
datapoints |= create_datapoints name, metric, time, [
|
106
|
-
:count, :
|
107
|
-
:fifteen_minute_rate, :mean_rate
|
45
|
+
:count, :mean_rate
|
108
46
|
], [
|
109
|
-
'Count', 'Count/Second'
|
110
|
-
'Count/Second', 'Count/Second'
|
47
|
+
'Count', 'Count/Second'
|
111
48
|
]
|
112
49
|
when Metriks::Counter
|
113
50
|
datapoints |= create_datapoints name, metric, time, [
|
@@ -123,17 +60,14 @@ module Metriks
|
|
123
60
|
]
|
124
61
|
when Metriks::Timer
|
125
62
|
datapoints |= create_datapoints name, metric, time, [
|
126
|
-
:count, :
|
127
|
-
:fifteen_minute_rate, :mean_rate,
|
128
|
-
:min, :max, :mean, :stddev
|
63
|
+
:count, :mean_rate, :min, :max, :mean, :stddev
|
129
64
|
], [
|
130
|
-
'Count', 'Count/Second', '
|
131
|
-
'
|
132
|
-
'Seconds', 'Seconds', 'Seconds', 'Seconds'
|
65
|
+
'Count', 'Count/Second', 'Seconds', 'Seconds',
|
66
|
+
'Seconds', 'Seconds'
|
133
67
|
], [
|
134
|
-
:median
|
68
|
+
:median
|
135
69
|
], [
|
136
|
-
'Seconds'
|
70
|
+
'Seconds'
|
137
71
|
]
|
138
72
|
when Metriks::Histogram
|
139
73
|
datapoints |= create_datapoints name, metric, time, [
|
@@ -142,9 +76,9 @@ module Metriks
|
|
142
76
|
'Count', 'Count', 'Count', 'Count',
|
143
77
|
'Count'
|
144
78
|
], [
|
145
|
-
:median
|
79
|
+
:median
|
146
80
|
], [
|
147
|
-
'Count'
|
81
|
+
'Count'
|
148
82
|
]
|
149
83
|
end
|
150
84
|
end
|
@@ -1,30 +1,21 @@
|
|
1
1
|
require 'metriks/time_tracker'
|
2
2
|
require 'rest-client'
|
3
3
|
require 'logger'
|
4
|
+
require 'metriks-addons/base_reporter'
|
4
5
|
|
5
|
-
module
|
6
|
-
class OpenTSDBReporter
|
6
|
+
module MetriksAddons
|
7
|
+
class OpenTSDBReporter < BaseReporter
|
7
8
|
attr_accessor :prefix, :source, :data, :hostname, :tags, :logger
|
8
9
|
|
9
10
|
def initialize(h, t, options = {})
|
11
|
+
super(options)
|
10
12
|
@hostname = h
|
11
13
|
@tags = t
|
12
14
|
|
13
15
|
@prefix = options[:prefix]
|
14
16
|
@source = options[:source]
|
15
17
|
|
16
|
-
@logger = options[:logger] || nil
|
17
18
|
@batch_size = options[:batch_size] || 50
|
18
|
-
@registry = options[:registry] || Metriks::Registry.default
|
19
|
-
@interval = options[:interval] || 60
|
20
|
-
@time_tracker = Metriks::TimeTracker.new(@interval)
|
21
|
-
@on_error = options[:on_error] || proc { |ex| }
|
22
|
-
|
23
|
-
if options[:percentiles]
|
24
|
-
@percentiles = options[:percentiles]
|
25
|
-
else
|
26
|
-
@percentiles = [ 0.95, 0.99]
|
27
|
-
end
|
28
19
|
|
29
20
|
if not @logger.nil?
|
30
21
|
RestClient.log =
|
@@ -34,57 +25,6 @@ module Metriks
|
|
34
25
|
end
|
35
26
|
end
|
36
27
|
end
|
37
|
-
@mutex = Mutex.new
|
38
|
-
@running = false
|
39
|
-
end
|
40
|
-
|
41
|
-
def log(level, msg)
|
42
|
-
if !@logger.nil?
|
43
|
-
@logger.send level, msg
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def start
|
48
|
-
if @thread && @thread.alive?
|
49
|
-
return
|
50
|
-
end
|
51
|
-
|
52
|
-
@running = true
|
53
|
-
@thread = Thread.new do
|
54
|
-
while @running
|
55
|
-
@time_tracker.sleep
|
56
|
-
|
57
|
-
Thread.new do
|
58
|
-
flush
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def stop
|
65
|
-
@running = false
|
66
|
-
|
67
|
-
if @thread
|
68
|
-
@thread.join
|
69
|
-
@thread = nil
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def restart
|
74
|
-
stop
|
75
|
-
start
|
76
|
-
end
|
77
|
-
|
78
|
-
def flush
|
79
|
-
begin
|
80
|
-
@mutex.synchronize do
|
81
|
-
log "debug", "Flushing metrics"
|
82
|
-
submit get_datapoints
|
83
|
-
end
|
84
|
-
rescue Exception => ex
|
85
|
-
log "error",ex.message
|
86
|
-
@on_error[ex] rescue nil
|
87
|
-
end
|
88
28
|
end
|
89
29
|
|
90
30
|
def submit(datapoints)
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'metriks/time_tracker'
|
2
2
|
require 'rest-client'
|
3
3
|
require 'logger'
|
4
|
+
require 'metriks-addons/base_reporter'
|
4
5
|
|
5
|
-
module
|
6
|
-
class SignalFxReporter
|
6
|
+
module MetriksAddons
|
7
|
+
class SignalFxReporter < BaseReporter
|
7
8
|
attr_accessor :prefix, :source, :data, :hostname, :tags, :logger
|
8
9
|
|
9
10
|
def initialize(h, token, id, tags, options = {})
|
11
|
+
super(options)
|
10
12
|
@hostname = h
|
11
13
|
@x_sf_token = token
|
12
14
|
@orgid = id
|
@@ -15,18 +17,7 @@ module Metriks
|
|
15
17
|
@prefix = options[:prefix]
|
16
18
|
@source = options[:source]
|
17
19
|
|
18
|
-
@logger = options[:logger] || nil
|
19
20
|
@batch_size = options[:batch_size] || 50
|
20
|
-
@registry = options[:registry] || Metriks::Registry.default
|
21
|
-
@interval = options[:interval] || 60
|
22
|
-
@time_tracker = Metriks::TimeTracker.new(@interval)
|
23
|
-
@on_error = options[:on_error] || proc { |ex| }
|
24
|
-
|
25
|
-
if options[:percentiles]
|
26
|
-
@percentiles = options[:percentiles]
|
27
|
-
else
|
28
|
-
@percentiles = [ 0.95, 0.99]
|
29
|
-
end
|
30
21
|
|
31
22
|
if not @logger.nil?
|
32
23
|
RestClient.log =
|
@@ -36,57 +27,6 @@ module Metriks
|
|
36
27
|
end
|
37
28
|
end
|
38
29
|
end
|
39
|
-
@mutex = Mutex.new
|
40
|
-
@running = false
|
41
|
-
end
|
42
|
-
|
43
|
-
def log(level, msg)
|
44
|
-
if !@logger.nil?
|
45
|
-
@logger.send level, msg
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def start
|
50
|
-
if @thread && @thread.alive?
|
51
|
-
return
|
52
|
-
end
|
53
|
-
|
54
|
-
@running = true
|
55
|
-
@thread = Thread.new do
|
56
|
-
while @running
|
57
|
-
@time_tracker.sleep
|
58
|
-
|
59
|
-
Thread.new do
|
60
|
-
flush
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def stop
|
67
|
-
@running = false
|
68
|
-
|
69
|
-
if @thread
|
70
|
-
@thread.join
|
71
|
-
@thread = nil
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def restart
|
76
|
-
stop
|
77
|
-
start
|
78
|
-
end
|
79
|
-
|
80
|
-
def flush
|
81
|
-
begin
|
82
|
-
@mutex.synchronize do
|
83
|
-
log "debug", "Flushing metrics"
|
84
|
-
submit get_datapoints
|
85
|
-
end
|
86
|
-
rescue Exception => ex
|
87
|
-
log "error",ex.message
|
88
|
-
@on_error[ex] rescue nil
|
89
|
-
end
|
90
30
|
end
|
91
31
|
|
92
32
|
def submit(datapoints)
|
@@ -118,8 +58,7 @@ module Metriks
|
|
118
58
|
case metric
|
119
59
|
when Metriks::Meter
|
120
60
|
counter |= create_datapoints name, metric, time, [
|
121
|
-
:count, :
|
122
|
-
:fifteen_minute_rate, :mean_rate
|
61
|
+
:count, :mean_rate
|
123
62
|
]
|
124
63
|
when Metriks::Counter
|
125
64
|
counter |= create_datapoints name, metric, time, [
|
@@ -131,28 +70,23 @@ module Metriks
|
|
131
70
|
]
|
132
71
|
when Metriks::UtilizationTimer
|
133
72
|
counter |= create_datapoints name, metric, time, [
|
134
|
-
:count, :
|
135
|
-
:
|
136
|
-
:min, :max, :mean, :stddev,
|
137
|
-
:one_minute_utilization, :five_minute_utilization,
|
138
|
-
:fifteen_minute_utilization, :mean_utilization,
|
73
|
+
:count, :mean_rate, :min, :max, :mean, :stddev,
|
74
|
+
:mean_utilization
|
139
75
|
], [
|
140
|
-
:median
|
76
|
+
:median
|
141
77
|
]
|
142
78
|
|
143
79
|
when Metriks::Timer
|
144
80
|
counter |= create_datapoints name, metric, time, [
|
145
|
-
:count, :
|
146
|
-
:fifteen_minute_rate, :mean_rate,
|
147
|
-
:min, :max, :mean, :stddev
|
81
|
+
:count, :mean_rate, :min, :max, :mean, :stddev
|
148
82
|
], [
|
149
|
-
:median
|
83
|
+
:median
|
150
84
|
]
|
151
85
|
when Metriks::Histogram
|
152
86
|
counter |= create_datapoints name, metric, time, [
|
153
87
|
:count, :min, :max, :mean, :stddev
|
154
88
|
], [
|
155
|
-
:median
|
89
|
+
:median
|
156
90
|
]
|
157
91
|
end
|
158
92
|
end
|
data/metriks-addons.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'metriks-addons'
|
16
|
-
s.version = '
|
17
|
-
s.date = '2015-
|
16
|
+
s.version = '3.0.0'
|
17
|
+
s.date = '2015-11-05'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
@@ -63,9 +63,10 @@ Gem::Specification.new do |s|
|
|
63
63
|
README.md
|
64
64
|
Rakefile
|
65
65
|
lib/metriks-addons.rb
|
66
|
-
lib/metriks/
|
67
|
-
lib/metriks/
|
68
|
-
lib/metriks/
|
66
|
+
lib/metriks-addons/base_reporter.rb
|
67
|
+
lib/metriks-addons/cloudwatch_reporter.rb
|
68
|
+
lib/metriks-addons/opentsdb_reporter.rb
|
69
|
+
lib/metriks-addons/signalfx_reporter.rb
|
69
70
|
metriks-addons.gemspec
|
70
71
|
spec/cloudwatch_spec.rb
|
71
72
|
spec/opentsdb_spec.rb
|
data/spec/cloudwatch_spec.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'webmock/rspec'
|
2
2
|
require 'metriks'
|
3
|
-
require 'metriks/cloudwatch_reporter'
|
3
|
+
require 'metriks-addons/cloudwatch_reporter'
|
4
4
|
|
5
5
|
describe "Smoke test" do
|
6
6
|
before(:each) do
|
7
7
|
AWS::CloudWatch.any_instance.stub(:put_metric_data)
|
8
8
|
@registry = Metriks::Registry.new
|
9
|
-
@reporter =
|
10
|
-
'DummyDummyDummyDummy',
|
9
|
+
@reporter = MetriksAddons::CloudWatchReporter.new(
|
10
|
+
'DummyDummyDummyDummy',
|
11
11
|
"DummyDummyDummyDummyDummyDummyDummyDummy",
|
12
12
|
"testingtier",
|
13
13
|
{:env =>"test"},
|
@@ -22,36 +22,18 @@ describe "Smoke test" do
|
|
22
22
|
it "meter" do
|
23
23
|
@registry.meter('meter.testing').mark
|
24
24
|
datapoints = @reporter.get_datapoints
|
25
|
-
expect(datapoints.size).to eql(
|
25
|
+
expect(datapoints.size).to eql(2)
|
26
26
|
expect(datapoints[0][:metric_name]).to eql("meter.testing.count")
|
27
27
|
expect(datapoints[0][:value]).to eql(1)
|
28
28
|
expect(datapoints[0][:dimensions]).to include({:name => "env", :value => "test"})
|
29
29
|
expect(datapoints[0][:timestamp]).not_to be_nil
|
30
30
|
expect(datapoints[0][:unit]).to eql('Count')
|
31
31
|
|
32
|
-
expect(datapoints[1][:metric_name]).to eql("meter.testing.
|
32
|
+
expect(datapoints[1][:metric_name]).to eql("meter.testing.mean_rate")
|
33
33
|
expect(datapoints[1][:value]).not_to be_nil
|
34
34
|
expect(datapoints[1][:dimensions]).to include({:name => "env", :value => "test"})
|
35
35
|
expect(datapoints[1][:timestamp]).not_to be_nil
|
36
36
|
expect(datapoints[1][:unit]).to eql('Count/Second')
|
37
|
-
|
38
|
-
expect(datapoints[2][:metric_name]).to eql("meter.testing.five_minute_rate")
|
39
|
-
expect(datapoints[2][:value]).to eql(0.0)
|
40
|
-
expect(datapoints[2][:dimensions]).to include({:name => "env", :value => "test"})
|
41
|
-
expect(datapoints[2][:timestamp]).not_to be_nil
|
42
|
-
expect(datapoints[2][:unit]).to eql('Count/Second')
|
43
|
-
|
44
|
-
expect(datapoints[3][:metric_name]).to eql("meter.testing.fifteen_minute_rate")
|
45
|
-
expect(datapoints[3][:value]).to eql(0.0)
|
46
|
-
expect(datapoints[3][:dimensions]).to include({:name => "env", :value => "test"})
|
47
|
-
expect(datapoints[3][:timestamp]).not_to be_nil
|
48
|
-
expect(datapoints[3][:unit]).to eql('Count/Second')
|
49
|
-
|
50
|
-
expect(datapoints[4][:metric_name]).to eql("meter.testing.mean_rate")
|
51
|
-
expect(datapoints[4][:value]).not_to be_nil
|
52
|
-
expect(datapoints[4][:dimensions]).to include({:name => "env", :value => "test"})
|
53
|
-
expect(datapoints[4][:timestamp]).not_to be_nil
|
54
|
-
expect(datapoints[4][:unit]).to eql('Count/Second')
|
55
37
|
end
|
56
38
|
|
57
39
|
it "counter" do
|
@@ -68,78 +50,54 @@ describe "Smoke test" do
|
|
68
50
|
it "timer" do
|
69
51
|
@registry.timer('timer.testing').update(1.5)
|
70
52
|
datapoints = @reporter.get_datapoints
|
71
|
-
expect(datapoints.size).to eql(
|
53
|
+
expect(datapoints.size).to eql(7)
|
72
54
|
expect(datapoints[0][:metric_name]).to eql("timer.testing.count")
|
73
55
|
expect(datapoints[0][:value]).to eql(1)
|
74
56
|
expect(datapoints[0][:dimensions]).to include({:name => "env", :value => "test"})
|
75
57
|
expect(datapoints[0][:timestamp]).not_to be_nil
|
76
58
|
expect(datapoints[0][:unit]).to eql('Count')
|
77
59
|
|
78
|
-
expect(datapoints[1][:metric_name]).to eql("timer.testing.
|
60
|
+
expect(datapoints[1][:metric_name]).to eql("timer.testing.mean_rate")
|
79
61
|
expect(datapoints[1][:value]).not_to be_nil
|
80
62
|
expect(datapoints[1][:dimensions]).to include({:name => "env", :value => "test"})
|
81
63
|
expect(datapoints[1][:timestamp]).not_to be_nil
|
82
64
|
expect(datapoints[1][:unit]).to eql('Count/Second')
|
83
65
|
|
84
|
-
expect(datapoints[2][:metric_name]).to eql("timer.testing.
|
85
|
-
expect(datapoints[2][:value]).
|
66
|
+
expect(datapoints[2][:metric_name]).to eql("timer.testing.min")
|
67
|
+
expect(datapoints[2][:value]).not_to be_nil
|
86
68
|
expect(datapoints[2][:dimensions]).to include({:name => "env", :value => "test"})
|
87
69
|
expect(datapoints[2][:timestamp]).not_to be_nil
|
88
|
-
expect(datapoints[2][:unit]).to eql('
|
70
|
+
expect(datapoints[2][:unit]).to eql('Seconds')
|
89
71
|
|
90
|
-
expect(datapoints[3][:metric_name]).to eql("timer.testing.
|
91
|
-
expect(datapoints[3][:value]).
|
72
|
+
expect(datapoints[3][:metric_name]).to eql("timer.testing.max")
|
73
|
+
expect(datapoints[3][:value]).not_to be_nil
|
92
74
|
expect(datapoints[3][:dimensions]).to include({:name => "env", :value => "test"})
|
93
75
|
expect(datapoints[3][:timestamp]).not_to be_nil
|
94
|
-
expect(datapoints[3][:unit]).to eql('
|
76
|
+
expect(datapoints[3][:unit]).to eql('Seconds')
|
95
77
|
|
96
|
-
expect(datapoints[4][:metric_name]).to eql("timer.testing.
|
78
|
+
expect(datapoints[4][:metric_name]).to eql("timer.testing.mean")
|
97
79
|
expect(datapoints[4][:value]).not_to be_nil
|
98
80
|
expect(datapoints[4][:dimensions]).to include({:name => "env", :value => "test"})
|
99
81
|
expect(datapoints[4][:timestamp]).not_to be_nil
|
100
|
-
expect(datapoints[4][:unit]).to eql('
|
82
|
+
expect(datapoints[4][:unit]).to eql('Seconds')
|
101
83
|
|
102
|
-
expect(datapoints[5][:metric_name]).to eql("timer.testing.
|
84
|
+
expect(datapoints[5][:metric_name]).to eql("timer.testing.stddev")
|
103
85
|
expect(datapoints[5][:value]).not_to be_nil
|
104
86
|
expect(datapoints[5][:dimensions]).to include({:name => "env", :value => "test"})
|
105
87
|
expect(datapoints[5][:timestamp]).not_to be_nil
|
106
88
|
expect(datapoints[5][:unit]).to eql('Seconds')
|
107
89
|
|
108
|
-
expect(datapoints[6][:metric_name]).to eql("timer.testing.
|
90
|
+
expect(datapoints[6][:metric_name]).to eql("timer.testing.median")
|
109
91
|
expect(datapoints[6][:value]).not_to be_nil
|
110
92
|
expect(datapoints[6][:dimensions]).to include({:name => "env", :value => "test"})
|
111
93
|
expect(datapoints[6][:timestamp]).not_to be_nil
|
112
94
|
expect(datapoints[6][:unit]).to eql('Seconds')
|
113
|
-
|
114
|
-
expect(datapoints[7][:metric_name]).to eql("timer.testing.mean")
|
115
|
-
expect(datapoints[7][:value]).not_to be_nil
|
116
|
-
expect(datapoints[7][:dimensions]).to include({:name => "env", :value => "test"})
|
117
|
-
expect(datapoints[7][:timestamp]).not_to be_nil
|
118
|
-
expect(datapoints[7][:unit]).to eql('Seconds')
|
119
|
-
|
120
|
-
expect(datapoints[8][:metric_name]).to eql("timer.testing.stddev")
|
121
|
-
expect(datapoints[8][:value]).not_to be_nil
|
122
|
-
expect(datapoints[8][:dimensions]).to include({:name => "env", :value => "test"})
|
123
|
-
expect(datapoints[8][:timestamp]).not_to be_nil
|
124
|
-
expect(datapoints[8][:unit]).to eql('Seconds')
|
125
|
-
|
126
|
-
expect(datapoints[9][:metric_name]).to eql("timer.testing.median")
|
127
|
-
expect(datapoints[9][:value]).not_to be_nil
|
128
|
-
expect(datapoints[9][:dimensions]).to include({:name => "env", :value => "test"})
|
129
|
-
expect(datapoints[9][:timestamp]).not_to be_nil
|
130
|
-
expect(datapoints[9][:unit]).to eql('Seconds')
|
131
|
-
|
132
|
-
expect(datapoints[10][:metric_name]).to eql("timer.testing.95th_percentile")
|
133
|
-
expect(datapoints[10][:value]).not_to be_nil
|
134
|
-
expect(datapoints[10][:dimensions]).to include({:name => "env", :value => "test"})
|
135
|
-
expect(datapoints[10][:timestamp]).not_to be_nil
|
136
|
-
expect(datapoints[10][:unit]).to eql('Seconds')
|
137
95
|
end
|
138
96
|
|
139
97
|
it "histogram" do
|
140
98
|
@registry.histogram('histogram.testing').update(1.5)
|
141
99
|
datapoints = @reporter.get_datapoints
|
142
|
-
expect(datapoints.size).to eql(
|
100
|
+
expect(datapoints.size).to eql(6)
|
143
101
|
expect(datapoints[0][:metric_name]).to eql("histogram.testing.count")
|
144
102
|
expect(datapoints[0][:value]).to eql(1)
|
145
103
|
expect(datapoints[0][:dimensions]).to include({:name => "env", :value => "test"})
|
@@ -175,12 +133,6 @@ describe "Smoke test" do
|
|
175
133
|
expect(datapoints[5][:dimensions]).to include({:name => "env", :value => "test"})
|
176
134
|
expect(datapoints[5][:timestamp]).not_to be_nil
|
177
135
|
expect(datapoints[5][:unit]).to eql('Count')
|
178
|
-
|
179
|
-
expect(datapoints[6][:metric_name]).to eql("histogram.testing.95th_percentile")
|
180
|
-
expect(datapoints[6][:value]).not_to be_nil
|
181
|
-
expect(datapoints[6][:dimensions]).to include({:name => "env", :value => "test"})
|
182
|
-
expect(datapoints[6][:timestamp]).not_to be_nil
|
183
|
-
expect(datapoints[6][:unit]).to eql('Count')
|
184
136
|
end
|
185
137
|
|
186
138
|
it "gauge" do
|
@@ -191,7 +143,6 @@ describe "Smoke test" do
|
|
191
143
|
expect(datapoints[0][:value]).to eql(123)
|
192
144
|
expect(datapoints[0][:dimensions]).to include({:name => "env", :value => "test"})
|
193
145
|
expect(datapoints[0][:timestamp]).not_to be_nil
|
194
|
-
expect(datapoints[0][:unit]).to eql('Count')
|
146
|
+
expect(datapoints[0][:unit]).to eql('Count')
|
195
147
|
end
|
196
148
|
end
|
197
|
-
|
data/spec/opentsdb_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'webmock/rspec'
|
2
2
|
require 'metriks'
|
3
|
-
require 'metriks/opentsdb_reporter'
|
3
|
+
require 'metriks-addons/opentsdb_reporter'
|
4
4
|
|
5
5
|
describe "Smoke test" do
|
6
6
|
before(:all) do
|
@@ -9,7 +9,7 @@ describe "Smoke test" do
|
|
9
9
|
|
10
10
|
before(:each) do
|
11
11
|
@registry = Metriks::Registry.new
|
12
|
-
@reporter =
|
12
|
+
@reporter = MetriksAddons::OpenTSDBReporter.new(
|
13
13
|
'http://localhost:4242',
|
14
14
|
{:env => "test"},
|
15
15
|
{ :registry => @registry })
|
@@ -174,7 +174,7 @@ end
|
|
174
174
|
describe "Rest Client" do
|
175
175
|
before(:each) do
|
176
176
|
@registry = Metriks::Registry.new
|
177
|
-
@reporter =
|
177
|
+
@reporter = MetriksAddons::OpenTSDBReporter.new(
|
178
178
|
'http://localhost:4242',
|
179
179
|
{:env => "test"},
|
180
180
|
{ :registry => @registry, :batch_size => 3})
|
data/spec/signalfx_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'webmock/rspec'
|
2
2
|
require 'metriks'
|
3
|
-
require 'metriks/signalfx_reporter'
|
3
|
+
require 'metriks-addons/signalfx_reporter'
|
4
4
|
|
5
5
|
describe "Smoke test" do
|
6
6
|
before(:all) do
|
@@ -9,8 +9,8 @@ describe "Smoke test" do
|
|
9
9
|
|
10
10
|
before(:each) do
|
11
11
|
@registry = Metriks::Registry.new
|
12
|
-
@reporter =
|
13
|
-
'http://localhost:4242',
|
12
|
+
@reporter = MetriksAddons::SignalFxReporter.new(
|
13
|
+
'http://localhost:4242',
|
14
14
|
"123456789",
|
15
15
|
"ABCD",
|
16
16
|
{:env => "test"},
|
@@ -25,31 +25,16 @@ describe "Smoke test" do
|
|
25
25
|
it "meter" do
|
26
26
|
@registry.meter('meter.testing').mark
|
27
27
|
datapoints = @reporter.get_datapoints
|
28
|
-
expect(datapoints[:counter].size).to eql(
|
28
|
+
expect(datapoints[:counter].size).to eql(2)
|
29
29
|
expect(datapoints[:counter][0][:metric]).to eql("meter.testing.count")
|
30
30
|
expect(datapoints[:counter][0][:value]).to eql(1)
|
31
31
|
expect(datapoints[:counter][0][:dimensions]).to include(:env => "test")
|
32
32
|
expect(datapoints[:counter][0][:timestamp]).not_to be_nil
|
33
33
|
|
34
|
-
expect(datapoints[:counter][1][:metric]).to eql("meter.testing.
|
34
|
+
expect(datapoints[:counter][1][:metric]).to eql("meter.testing.mean_rate")
|
35
35
|
expect(datapoints[:counter][1][:value]).not_to be_nil
|
36
36
|
expect(datapoints[:counter][1][:dimensions]).to include(:env => "test")
|
37
37
|
expect(datapoints[:counter][1][:timestamp]).not_to be_nil
|
38
|
-
|
39
|
-
expect(datapoints[:counter][2][:metric]).to eql("meter.testing.five_minute_rate")
|
40
|
-
expect(datapoints[:counter][2][:value]).to eql(0.0)
|
41
|
-
expect(datapoints[:counter][2][:dimensions]).to include(:env => "test")
|
42
|
-
expect(datapoints[:counter][2][:timestamp]).not_to be_nil
|
43
|
-
|
44
|
-
expect(datapoints[:counter][3][:metric]).to eql("meter.testing.fifteen_minute_rate")
|
45
|
-
expect(datapoints[:counter][3][:value]).to eql(0.0)
|
46
|
-
expect(datapoints[:counter][3][:dimensions]).to include(:env => "test")
|
47
|
-
expect(datapoints[:counter][3][:timestamp]).not_to be_nil
|
48
|
-
|
49
|
-
expect(datapoints[:counter][4][:metric]).to eql("meter.testing.mean_rate")
|
50
|
-
expect(datapoints[:counter][4][:value]).not_to be_nil
|
51
|
-
expect(datapoints[:counter][4][:dimensions]).to include(:env => "test")
|
52
|
-
expect(datapoints[:counter][4][:timestamp]).not_to be_nil
|
53
38
|
end
|
54
39
|
|
55
40
|
it "counter" do
|
@@ -65,67 +50,47 @@ describe "Smoke test" do
|
|
65
50
|
it "timer" do
|
66
51
|
@registry.timer('timer.testing').update(1.5)
|
67
52
|
datapoints = @reporter.get_datapoints
|
68
|
-
expect(datapoints[:counter].size).to eql(
|
53
|
+
expect(datapoints[:counter].size).to eql(7)
|
69
54
|
expect(datapoints[:counter][0][:metric]).to eql("timer.testing.count")
|
70
55
|
expect(datapoints[:counter][0][:value]).to eql(1)
|
71
56
|
expect(datapoints[:counter][0][:dimensions]).to include(:env => "test")
|
72
57
|
expect(datapoints[:counter][0][:timestamp]).not_to be_nil
|
73
58
|
|
74
|
-
expect(datapoints[:counter][1][:metric]).to eql("timer.testing.
|
59
|
+
expect(datapoints[:counter][1][:metric]).to eql("timer.testing.mean_rate")
|
75
60
|
expect(datapoints[:counter][1][:value]).not_to be_nil
|
76
61
|
expect(datapoints[:counter][1][:dimensions]).to include(:env => "test")
|
77
62
|
expect(datapoints[:counter][1][:timestamp]).not_to be_nil
|
78
63
|
|
79
|
-
expect(datapoints[:counter][2][:metric]).to eql("timer.testing.
|
80
|
-
expect(datapoints[:counter][2][:value]).
|
64
|
+
expect(datapoints[:counter][2][:metric]).to eql("timer.testing.min")
|
65
|
+
expect(datapoints[:counter][2][:value]).not_to be_nil
|
81
66
|
expect(datapoints[:counter][2][:dimensions]).to include(:env => "test")
|
82
67
|
expect(datapoints[:counter][2][:timestamp]).not_to be_nil
|
83
68
|
|
84
|
-
expect(datapoints[:counter][3][:metric]).to eql("timer.testing.
|
85
|
-
expect(datapoints[:counter][3][:value]).
|
69
|
+
expect(datapoints[:counter][3][:metric]).to eql("timer.testing.max")
|
70
|
+
expect(datapoints[:counter][3][:value]).not_to be_nil
|
86
71
|
expect(datapoints[:counter][3][:dimensions]).to include(:env => "test")
|
87
72
|
expect(datapoints[:counter][3][:timestamp]).not_to be_nil
|
88
73
|
|
89
|
-
expect(datapoints[:counter][4][:metric]).to eql("timer.testing.
|
74
|
+
expect(datapoints[:counter][4][:metric]).to eql("timer.testing.mean")
|
90
75
|
expect(datapoints[:counter][4][:value]).not_to be_nil
|
91
76
|
expect(datapoints[:counter][4][:dimensions]).to include(:env => "test")
|
92
77
|
expect(datapoints[:counter][4][:timestamp]).not_to be_nil
|
93
78
|
|
94
|
-
expect(datapoints[:counter][5][:metric]).to eql("timer.testing.
|
79
|
+
expect(datapoints[:counter][5][:metric]).to eql("timer.testing.stddev")
|
95
80
|
expect(datapoints[:counter][5][:value]).not_to be_nil
|
96
81
|
expect(datapoints[:counter][5][:dimensions]).to include(:env => "test")
|
97
82
|
expect(datapoints[:counter][5][:timestamp]).not_to be_nil
|
98
83
|
|
99
|
-
expect(datapoints[:counter][6][:metric]).to eql("timer.testing.
|
84
|
+
expect(datapoints[:counter][6][:metric]).to eql("timer.testing.median")
|
100
85
|
expect(datapoints[:counter][6][:value]).not_to be_nil
|
101
86
|
expect(datapoints[:counter][6][:dimensions]).to include(:env => "test")
|
102
87
|
expect(datapoints[:counter][6][:timestamp]).not_to be_nil
|
103
|
-
|
104
|
-
expect(datapoints[:counter][7][:metric]).to eql("timer.testing.mean")
|
105
|
-
expect(datapoints[:counter][7][:value]).not_to be_nil
|
106
|
-
expect(datapoints[:counter][7][:dimensions]).to include(:env => "test")
|
107
|
-
expect(datapoints[:counter][7][:timestamp]).not_to be_nil
|
108
|
-
|
109
|
-
expect(datapoints[:counter][8][:metric]).to eql("timer.testing.stddev")
|
110
|
-
expect(datapoints[:counter][8][:value]).not_to be_nil
|
111
|
-
expect(datapoints[:counter][8][:dimensions]).to include(:env => "test")
|
112
|
-
expect(datapoints[:counter][8][:timestamp]).not_to be_nil
|
113
|
-
|
114
|
-
expect(datapoints[:counter][9][:metric]).to eql("timer.testing.median")
|
115
|
-
expect(datapoints[:counter][9][:value]).not_to be_nil
|
116
|
-
expect(datapoints[:counter][9][:dimensions]).to include(:env => "test")
|
117
|
-
expect(datapoints[:counter][9][:timestamp]).not_to be_nil
|
118
|
-
|
119
|
-
expect(datapoints[:counter][10][:metric]).to eql("timer.testing.95th_percentile")
|
120
|
-
expect(datapoints[:counter][10][:value]).not_to be_nil
|
121
|
-
expect(datapoints[:counter][10][:dimensions]).to include(:env => "test")
|
122
|
-
expect(datapoints[:counter][10][:timestamp]).not_to be_nil
|
123
88
|
end
|
124
89
|
|
125
90
|
it "histogram" do
|
126
91
|
@registry.histogram('histogram.testing').update(1.5)
|
127
92
|
datapoints = @reporter.get_datapoints
|
128
|
-
expect(datapoints[:counter].size).to eql(
|
93
|
+
expect(datapoints[:counter].size).to eql(6)
|
129
94
|
expect(datapoints[:counter][0][:metric]).to eql("histogram.testing.count")
|
130
95
|
expect(datapoints[:counter][0][:value]).to eql(1)
|
131
96
|
expect(datapoints[:counter][0][:dimensions]).to include(:env => "test")
|
@@ -155,11 +120,6 @@ describe "Smoke test" do
|
|
155
120
|
expect(datapoints[:counter][5][:value]).not_to be_nil
|
156
121
|
expect(datapoints[:counter][5][:dimensions]).to include(:env => "test")
|
157
122
|
expect(datapoints[:counter][5][:timestamp]).not_to be_nil
|
158
|
-
|
159
|
-
expect(datapoints[:counter][6][:metric]).to eql("histogram.testing.95th_percentile")
|
160
|
-
expect(datapoints[:counter][6][:value]).not_to be_nil
|
161
|
-
expect(datapoints[:counter][6][:dimensions]).to include(:env => "test")
|
162
|
-
expect(datapoints[:counter][6][:timestamp]).not_to be_nil
|
163
123
|
end
|
164
124
|
|
165
125
|
it "gauge" do
|
@@ -176,8 +136,8 @@ end
|
|
176
136
|
describe "Rest Client" do
|
177
137
|
before(:each) do
|
178
138
|
@registry = Metriks::Registry.new
|
179
|
-
@reporter =
|
180
|
-
'http://localhost:4242/api/datapoint',
|
139
|
+
@reporter = MetriksAddons::SignalFxReporter.new(
|
140
|
+
'http://localhost:4242/api/datapoint',
|
181
141
|
"123456789",
|
182
142
|
"ABCD",
|
183
143
|
{:env => "test"},
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metriks-addons
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rajat Venkatesh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metriks
|
@@ -71,9 +71,10 @@ files:
|
|
71
71
|
- README.md
|
72
72
|
- Rakefile
|
73
73
|
- lib/metriks-addons.rb
|
74
|
-
- lib/metriks/
|
75
|
-
- lib/metriks/
|
76
|
-
- lib/metriks/
|
74
|
+
- lib/metriks-addons/base_reporter.rb
|
75
|
+
- lib/metriks-addons/cloudwatch_reporter.rb
|
76
|
+
- lib/metriks-addons/opentsdb_reporter.rb
|
77
|
+
- lib/metriks-addons/signalfx_reporter.rb
|
77
78
|
- metriks-addons.gemspec
|
78
79
|
- spec/cloudwatch_spec.rb
|
79
80
|
- spec/opentsdb_spec.rb
|