meter 0.0.2 → 0.0.3
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.
- data/lib/meter/configuration.rb +12 -1
- data/lib/meter/version.rb +1 -1
- data/lib/meter.rb +10 -2
- data/spec/lib/meter/configuration_spec.rb +1 -1
- data/spec/lib/meter_spec.rb +9 -6
- metadata +2 -2
data/lib/meter/configuration.rb
CHANGED
@@ -5,7 +5,7 @@ module Meter
|
|
5
5
|
class Configuration
|
6
6
|
|
7
7
|
attr_accessor :logger, :tags
|
8
|
-
attr_reader :primary_backend, :secondary_backend
|
8
|
+
attr_reader :primary_backend, :secondary_backend, :counter_backend
|
9
9
|
|
10
10
|
def initialize(options={})
|
11
11
|
@logger = options[:logger] || default_logger
|
@@ -17,12 +17,19 @@ module Meter
|
|
17
17
|
@secondary_backend.host = options[:secondary_host] || default_host
|
18
18
|
@secondary_backend.port = options[:secondary_port] || default_secondary_port
|
19
19
|
@secondary_backend.namespace = options[:namespace] || default_namespace
|
20
|
+
|
21
|
+
@counter_backend = Backend.new
|
22
|
+
@counter_backend.host = options[:counter_host] || default_host
|
23
|
+
@counter_backend.port = options[:counter_port] || default_counter_port
|
24
|
+
@counter_backend.namespace = options[:namespace] || default_namespace
|
25
|
+
|
20
26
|
@tags = options[:tags] || {}
|
21
27
|
end
|
22
28
|
|
23
29
|
def namespace=(new_namespace)
|
24
30
|
primary_backend.namespace = new_namespace
|
25
31
|
secondary_backend.namespace = new_namespace
|
32
|
+
counter_backend.namespace = new_namespace
|
26
33
|
end
|
27
34
|
|
28
35
|
def namespace
|
@@ -80,6 +87,10 @@ module Meter
|
|
80
87
|
end
|
81
88
|
|
82
89
|
def default_secondary_port
|
90
|
+
8126
|
91
|
+
end
|
92
|
+
|
93
|
+
def default_counter_port
|
83
94
|
3333
|
84
95
|
end
|
85
96
|
|
data/lib/meter/version.rb
CHANGED
data/lib/meter.rb
CHANGED
@@ -8,25 +8,29 @@ module Meter
|
|
8
8
|
def increment(key, options = {})
|
9
9
|
id = options.delete(:id)
|
10
10
|
primary.increment key, options
|
11
|
+
secondary.increment key, options
|
11
12
|
if id
|
12
|
-
|
13
|
+
counter.increment "#{key}.#{id}", options
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
17
|
def count(key, delta, options = {})
|
17
18
|
id = options.delete(:id)
|
18
19
|
primary.count key, delta, options
|
20
|
+
secondary.count key, delta, options
|
19
21
|
if id
|
20
|
-
|
22
|
+
counter.count "#{key}.#{id}", delta, options
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def gauge(key, value, options = {})
|
25
27
|
primary.gauge key, value, options
|
28
|
+
secondary.gauge key, value, options
|
26
29
|
end
|
27
30
|
|
28
31
|
def histogram(key, value, options = {})
|
29
32
|
primary.histogram key, value, options
|
33
|
+
secondary.histogram key, value, options
|
30
34
|
end
|
31
35
|
|
32
36
|
private
|
@@ -39,4 +43,8 @@ module Meter
|
|
39
43
|
config.secondary_backend
|
40
44
|
end
|
41
45
|
|
46
|
+
def counter
|
47
|
+
config.counter_backend
|
48
|
+
end
|
49
|
+
|
42
50
|
end
|
data/spec/lib/meter_spec.rb
CHANGED
@@ -5,28 +5,31 @@ describe Meter do
|
|
5
5
|
let(:meter) { Meter }
|
6
6
|
let(:primary) { Meter.config.primary_backend }
|
7
7
|
let(:secondary) { Meter.config.secondary_backend }
|
8
|
+
let(:counter) { Meter.config.counter_backend }
|
8
9
|
|
9
10
|
describe '.increment' do
|
10
11
|
context "when given an id as option" do
|
11
|
-
it "proxies to the
|
12
|
-
|
12
|
+
it "proxies to the counter with the id" do
|
13
|
+
counter.should_receive(:increment).with("my.key.123", {})
|
13
14
|
meter.increment 'my.key', :id => 123
|
14
15
|
end
|
15
16
|
|
16
|
-
it "proxies to the primary without the id" do
|
17
|
+
it "proxies to the primary and secondary without the id" do
|
17
18
|
primary.should_receive(:increment).with("my.key", {})
|
19
|
+
secondary.should_receive(:increment).with("my.key", {})
|
18
20
|
meter.increment 'my.key', :id => 123
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
24
|
context "when id is NOT given as an option" do
|
23
|
-
it "doesn't proxy to the
|
24
|
-
|
25
|
+
it "doesn't proxy to the counter at all" do
|
26
|
+
counter.should_not_receive(:increment)
|
25
27
|
meter.increment 'my.key'
|
26
28
|
end
|
27
29
|
|
28
|
-
it "proxies to the primary" do
|
30
|
+
it "proxies to the primary and secondary" do
|
29
31
|
primary.should_receive(:increment).with("my.key", {})
|
32
|
+
secondary.should_receive(:increment).with("my.key", {})
|
30
33
|
meter.increment 'my.key'
|
31
34
|
end
|
32
35
|
end
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: meter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- bukowskis
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|