lookout-statsd 2.0.2 → 2.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.
- checksums.yaml +4 -4
- data/lib/statsd.rb +5 -10
- data/spec/statsd_spec.rb +109 -0
- data/statsd.gemspec +1 -1
- 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: d1991db3ab55ae4ba74b693dfcb600b2d809cb96
|
4
|
+
data.tar.gz: 1718da7a874889f7c94eb18e20db2ae937b97b36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 793034d20062c3a9a3c5014191b7fdf3e118bd5271170ab35ff3e3aa66c7a2c23541669179820581700979e7441b6d1fe0137b451faca62501c8d0ab01bcf363
|
7
|
+
data.tar.gz: 57b8807ef73cafd8c6ce406d987500b8f6b118ad02ef23f8a2875650801f0e380045b92348fbe7226bdd7fecb5703693b290f3ff7d3f2903d7b1116ccd2d2423
|
data/lib/statsd.rb
CHANGED
@@ -97,7 +97,7 @@ module Statsd
|
|
97
97
|
# @example Batch two instument operations:
|
98
98
|
# $statsd.batch do |batch|
|
99
99
|
# batch.increment 'sys.requests'
|
100
|
-
# batch.gauge
|
100
|
+
# batch.gauge {'user.count' => User.count}
|
101
101
|
# end
|
102
102
|
def batch(&block)
|
103
103
|
Batch.new(self).easy(&block)
|
@@ -161,7 +161,7 @@ module Statsd
|
|
161
161
|
# batch = Statsd::Batch.new($statsd)
|
162
162
|
# batch.increment 'garets'
|
163
163
|
# batch.timing 'glork', 320
|
164
|
-
# batch.gauge 'bork'
|
164
|
+
# batch.gauge 'bork': 100
|
165
165
|
# batch.flush
|
166
166
|
#
|
167
167
|
# Batch is a subclass of Statsd, but with a constructor that proxies to a
|
@@ -172,14 +172,6 @@ module Statsd
|
|
172
172
|
# troubles may occur and data will be lost.
|
173
173
|
class Batch < Statsd::Client
|
174
174
|
|
175
|
-
extend Forwardable
|
176
|
-
def_delegators :@statsd,
|
177
|
-
:host, :host=,
|
178
|
-
:port, :port=,
|
179
|
-
:prefix,
|
180
|
-
:postfix,
|
181
|
-
:delimiter, :delimiter=
|
182
|
-
|
183
175
|
attr_accessor :batch_size
|
184
176
|
|
185
177
|
# @param [Statsd] requires a configured Statsd instance
|
@@ -188,6 +180,9 @@ module Statsd
|
|
188
180
|
@batch_size = statsd.batch_size
|
189
181
|
@backlog = []
|
190
182
|
@send_data = send_method
|
183
|
+
@host = statsd.host
|
184
|
+
@port = statsd.port
|
185
|
+
@prefix = statsd.prefix
|
191
186
|
end
|
192
187
|
|
193
188
|
# @yields [Batch] yields itself
|
data/spec/statsd_spec.rb
CHANGED
@@ -209,4 +209,113 @@ describe Statsd::Client do
|
|
209
209
|
subject
|
210
210
|
end
|
211
211
|
end
|
212
|
+
end
|
213
|
+
|
214
|
+
describe Statsd::Batch do
|
215
|
+
let(:c) { Statsd::Client.new :host => 'foo.com', :prefix => 'my.app', :port => 1234, :batch_size => 20 }
|
216
|
+
|
217
|
+
it 'should delegate fields correctly' do
|
218
|
+
c.batch do |b|
|
219
|
+
expect(b.host).to eql 'foo.com'
|
220
|
+
expect(b.prefix).to eql 'my.app'
|
221
|
+
expect(b.port).to eql 1234
|
222
|
+
expect(b.batch_size).to eql 20
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
describe '#gauge' do
|
227
|
+
it 'should apply the prefix correctly' do
|
228
|
+
c.batch do |b|
|
229
|
+
b.should_receive(:send_stats).with(["my.app.an_incrementer:2|g"])
|
230
|
+
b.gauge({'an_incrementer' => 2})
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
describe '#timing' do
|
236
|
+
|
237
|
+
before :each do
|
238
|
+
c.prefix = nil
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'should pass the sample rate along' do
|
242
|
+
sample = 10
|
243
|
+
c.batch do |b|
|
244
|
+
b.should_receive(:send_stats).with(anything(), sample)
|
245
|
+
b.timing('foo', 1, sample)
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
it 'should use the right stat name' do
|
250
|
+
c.batch do |b|
|
251
|
+
b.should_receive(:send_stats).with('foo:1|ms', anything())
|
252
|
+
b.timing('foo', 1)
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'should prefix its stats if it has a prefix' do
|
257
|
+
c.prefix = 'dev'
|
258
|
+
c.batch do |b|
|
259
|
+
b.should_receive(:send_stats).with('dev.foo:1|ms', anything())
|
260
|
+
b.timing('foo', 1)
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
it 'should wrap a block correctly' do
|
265
|
+
# Pretend our block took one second
|
266
|
+
c.batch do |b|
|
267
|
+
b.should_receive(:send_stats).with('foo:1000|ms', anything())
|
268
|
+
Time.stub_chain(:now, :to_f).and_return(1, 2)
|
269
|
+
|
270
|
+
b.timing('foo') do
|
271
|
+
true.should be true
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
it 'should return the return value from the block' do
|
277
|
+
# Pretend our block took one second
|
278
|
+
c.batch do |b|
|
279
|
+
b.should_receive(:send_stats).with('foo:1000|ms', anything())
|
280
|
+
Time.stub_chain(:now, :to_f).and_return(1, 2)
|
281
|
+
|
282
|
+
value = b.timing('foo') { 1337 }
|
283
|
+
value.should == 1337
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
describe '#increment' do
|
289
|
+
it 'should update the counter by 1' do
|
290
|
+
c.should_receive(:update_counter).with('foo', 1, anything())
|
291
|
+
c.increment('foo')
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
describe '#decrement' do
|
296
|
+
it 'should update the counter by -1' do
|
297
|
+
c.batch do |b|
|
298
|
+
b.should_receive(:update_counter).with('foo', -1, anything())
|
299
|
+
b.decrement('foo')
|
300
|
+
end
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
describe '#update_counter' do
|
305
|
+
it 'should prepend the prefix if it has one' do
|
306
|
+
c.prefix = 'dev'
|
307
|
+
c.batch do |b|
|
308
|
+
b.should_receive(:send_stats).with(['dev.foo:123|c'], anything())
|
309
|
+
b.update_counter('foo', 123)
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
it 'should prepend multiple prefixes if it has one' do
|
314
|
+
c.prefix = 'dev'
|
315
|
+
c.batch do |b|
|
316
|
+
b.should_receive(:send_stats).with(['dev.foo:123|c', 'dev.bar:123|c'], anything())
|
317
|
+
b.update_counter(['foo', 'bar'], 123)
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
212
321
|
end
|
data/statsd.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lookout-statsd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- R. Tyler Croy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-05-
|
13
|
+
date: 2016-05-20 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: A simple ruby statsd client.
|
16
16
|
email:
|