metriks-addons 2.3.0 → 3.0.0

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: 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