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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea2d1d23539d5721da6b13d7435000a6d183457d
4
- data.tar.gz: d4df482e5faaa8c98e979b65cf8919589173d45a
3
+ metadata.gz: 17f951f96c43d837060bdb4082615c71412876e9
4
+ data.tar.gz: ca27fb4cb369aa02929c730a6b5e2f2b21a41ec4
5
5
  SHA512:
6
- metadata.gz: dea3f88202c6b82dc2b3657000b8ce22770e82ef401f5c4b8a06a6617c6ba4ead6ce1a69e4f9e81fd7f3e6790618864b9ea068df1753c84d77c0b2471929960b
7
- data.tar.gz: f2166eead807181eee4e6c9c5642344581b0f0711bea89cf4871df4486993461c3eeb6fc408fdb9fd0eb5e86d684de6fa6214a68e0bf8b30554159c6df91f369
6
+ metadata.gz: c00d29c77472b45a5b81628bce4a36718cb4852e65bfbf40815cb68fbb49729c0e976ecee59ae6befb9abfdafe9988897b523ec64f39f6c92bf7ee4b6c79e2ab
7
+ data.tar.gz: c18b42e521ad1eb8667008b92ebe041b06adbdf278b9c31697abc0007eff60f65749243e4c957fea0e61aa686133f97d9a83f01c4f91b1c274844c93f0b5f2fa
@@ -1,7 +1,7 @@
1
- require 'metriks/opentsdb_reporter'
2
- require 'metriks/signalfx_reporter'
3
- require 'metriks/cloudwatch_reporter'
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 = '2.3.0'
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 Metriks
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, :one_minute_rate, :five_minute_rate,
107
- :fifteen_minute_rate, :mean_rate
45
+ :count, :mean_rate
108
46
  ], [
109
- 'Count', 'Count/Second', '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, :one_minute_rate, :five_minute_rate,
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', 'Count/Second',
131
- 'Count/Second', 'Count/Second',
132
- 'Seconds', 'Seconds', 'Seconds', 'Seconds'
65
+ 'Count', 'Count/Second', 'Seconds', 'Seconds',
66
+ 'Seconds', 'Seconds'
133
67
  ], [
134
- :median, :get_95th_percentile
68
+ :median
135
69
  ], [
136
- 'Seconds', '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, :get_95th_percentile
79
+ :median
146
80
  ], [
147
- 'Count', '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 Metriks
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 Metriks
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, :one_minute_rate, :five_minute_rate,
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, :one_minute_rate, :five_minute_rate,
135
- :fifteen_minute_rate, :mean_rate,
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, :get_95th_percentile
76
+ :median
141
77
  ]
142
78
 
143
79
  when Metriks::Timer
144
80
  counter |= create_datapoints name, metric, time, [
145
- :count, :one_minute_rate, :five_minute_rate,
146
- :fifteen_minute_rate, :mean_rate,
147
- :min, :max, :mean, :stddev
81
+ :count, :mean_rate, :min, :max, :mean, :stddev
148
82
  ], [
149
- :median, :get_95th_percentile
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, :get_95th_percentile
89
+ :median
156
90
  ]
157
91
  end
158
92
  end
@@ -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 = '2.3.0'
17
- s.date = '2015-10-04'
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/cloudwatch_reporter.rb
67
- lib/metriks/opentsdb_reporter.rb
68
- lib/metriks/signalfx_reporter.rb
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
@@ -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 = Metriks::CloudWatchReporter.new(
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(5)
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.one_minute_rate")
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(11)
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.one_minute_rate")
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.five_minute_rate")
85
- expect(datapoints[2][:value]).to eql(0.0)
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('Count/Second')
70
+ expect(datapoints[2][:unit]).to eql('Seconds')
89
71
 
90
- expect(datapoints[3][:metric_name]).to eql("timer.testing.fifteen_minute_rate")
91
- expect(datapoints[3][:value]).to eql(0.0)
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('Count/Second')
76
+ expect(datapoints[3][:unit]).to eql('Seconds')
95
77
 
96
- expect(datapoints[4][:metric_name]).to eql("timer.testing.mean_rate")
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('Count/Second')
82
+ expect(datapoints[4][:unit]).to eql('Seconds')
101
83
 
102
- expect(datapoints[5][:metric_name]).to eql("timer.testing.min")
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.max")
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(7)
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
-
@@ -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 = Metriks::OpenTSDBReporter.new(
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 = Metriks::OpenTSDBReporter.new(
177
+ @reporter = MetriksAddons::OpenTSDBReporter.new(
178
178
  'http://localhost:4242',
179
179
  {:env => "test"},
180
180
  { :registry => @registry, :batch_size => 3})
@@ -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 = Metriks::SignalFxReporter.new(
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(5)
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.one_minute_rate")
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(11)
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.one_minute_rate")
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.five_minute_rate")
80
- expect(datapoints[:counter][2][:value]).to eql(0.0)
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.fifteen_minute_rate")
85
- expect(datapoints[:counter][3][:value]).to eql(0.0)
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.mean_rate")
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.min")
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.max")
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(7)
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 = Metriks::SignalFxReporter.new(
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: 2.3.0
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-10-04 00:00:00.000000000 Z
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/cloudwatch_reporter.rb
75
- - lib/metriks/opentsdb_reporter.rb
76
- - lib/metriks/signalfx_reporter.rb
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