canvas_statsd 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/canvas_statsd/statsd.rb +15 -0
- data/spec/canvas_statsd/statsd_spec.rb +21 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8d208dec2b9d9e15929242060b633ddc26604e4
|
4
|
+
data.tar.gz: 64dd9bbc70f94f50e825f956fb5d8487aa7d70ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cc72278306b28823f791c6caa32788f62f9462146269ce6b9bbcf448b00bb5215bc4178955638fa217b031a8c2a1e600be96535f0020c0d2d7f909434c07cb2
|
7
|
+
data.tar.gz: c43c0b295a7181af427f02710b269060afe83860df65df94e3e4bbffacd97d4b3983dc022ab4b07cc07dfaf63e5b3c8007ca31cb98d4e12384145ce5cbfe827e
|
data/lib/canvas_statsd/statsd.rb
CHANGED
@@ -77,7 +77,20 @@ module CanvasStatsd
|
|
77
77
|
result
|
78
78
|
end
|
79
79
|
|
80
|
+
def self.batch
|
81
|
+
return yield unless (old_instance = instance)
|
82
|
+
old_instance.batch do |batch|
|
83
|
+
Thread.current[:canvas_statsd] = batch
|
84
|
+
yield
|
85
|
+
end
|
86
|
+
ensure
|
87
|
+
Thread.current[:canvas_statsd] = old_instance
|
88
|
+
end
|
89
|
+
|
80
90
|
def self.instance
|
91
|
+
thread_statsd = Thread.current[:canvas_statsd]
|
92
|
+
return thread_statsd if thread_statsd
|
93
|
+
|
81
94
|
if !defined?(@statsd)
|
82
95
|
statsd_settings = CanvasStatsd.settings
|
83
96
|
|
@@ -85,6 +98,7 @@ module CanvasStatsd
|
|
85
98
|
@statsd = ::Statsd.new(statsd_settings[:host])
|
86
99
|
@statsd.port = statsd_settings[:port] if statsd_settings[:port]
|
87
100
|
@statsd.namespace = statsd_settings[:namespace] if statsd_settings[:namespace]
|
101
|
+
@statsd.batch_size = statsd_settings[:batch_size] if statsd_settings[:batch_size]
|
88
102
|
@append_hostname = !statsd_settings.key?(:append_hostname) || !!statsd_settings[:append_hostname]
|
89
103
|
else
|
90
104
|
@statsd = nil
|
@@ -99,6 +113,7 @@ module CanvasStatsd
|
|
99
113
|
|
100
114
|
def self.reset_instance
|
101
115
|
remove_instance_variable(:@statsd) if defined?(@statsd)
|
116
|
+
Thread.current[:canvas_statsd] = nil
|
102
117
|
end
|
103
118
|
end
|
104
119
|
end
|
@@ -73,6 +73,27 @@ describe CanvasStatsd::Statsd do
|
|
73
73
|
expect(instance.namespace).to eq "test"
|
74
74
|
end
|
75
75
|
|
76
|
+
describe ".batch" do
|
77
|
+
it "is properly reentrant" do
|
78
|
+
CanvasStatsd.settings = { :host => "localhost", :namespace => "test", :port => 1234 }
|
79
|
+
CanvasStatsd::Statsd.reset_instance
|
80
|
+
|
81
|
+
statsd = CanvasStatsd::Statsd.instance
|
82
|
+
CanvasStatsd::Statsd.batch do
|
83
|
+
batch1 = CanvasStatsd::Statsd.instance
|
84
|
+
CanvasStatsd::Statsd.batch do
|
85
|
+
batch2 = CanvasStatsd::Statsd.instance
|
86
|
+
expect(statsd).to be_a ::Statsd
|
87
|
+
expect(batch1).to be_a ::Statsd::Batch
|
88
|
+
expect(batch2).to be_a ::Statsd::Batch
|
89
|
+
expect(batch1).not_to eq batch2
|
90
|
+
end
|
91
|
+
expect(CanvasStatsd::Statsd.instance).to eq batch1
|
92
|
+
end
|
93
|
+
expect(CanvasStatsd::Statsd.instance).to eq statsd
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
76
97
|
describe ".escape" do
|
77
98
|
it "replaces any dots in str with a _ when no replacment given" do
|
78
99
|
result = CanvasStatsd::Statsd.escape("lots.of.dots")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_statsd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Cloward
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: statsd-ruby
|