statsy 0.1.1 → 0.1.2

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.
Files changed (3) hide show
  1. data/lib/statsy.rb +14 -11
  2. data/test/statsy_test.rb +5 -0
  3. metadata +3 -3
data/lib/statsy.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # Client to access statsd service authored by etsy. Yay etsy!
2
2
  # https://github.com/etsy/statsd
3
3
  module Statsy
4
- VERSION="0.1.1"
4
+ VERSION="0.1.2"
5
5
 
6
6
  module Transport
7
7
  require 'socket'
@@ -57,13 +57,7 @@ module Statsy
57
57
  # client.increment("coffee.single-espresso", 1, 0.5) # 50% of the time
58
58
  #
59
59
  def increment(stat, count=1, sampling=1)
60
- if sampling < 1
61
- if Kernel.rand < sampling
62
- @transport.write("%s:%d|c@%f" % [ stat, count, sampling ])
63
- end
64
- else
65
- @transport.write("%s:%d|c" % [ stat, count ])
66
- end
60
+ write(stat, count, 'c', sampling)
67
61
  self
68
62
  end
69
63
 
@@ -73,9 +67,7 @@ module Statsy
73
67
  # client.measure("foo.backendtime", response.headers["X-Runtime"].to_i)
74
68
  #
75
69
  def measure(stat, time, sampling=1)
76
- if sampling >= 1 || rand < sampling
77
- @transport.write("%s:%d|ms" % [ stat, time ])
78
- end
70
+ write(stat, time, 'ms', sampling)
79
71
  self
80
72
  end
81
73
 
@@ -109,5 +101,16 @@ module Statsy
109
101
  end
110
102
  self
111
103
  end
104
+
105
+ private
106
+ def write(stat, value, modifier, sampling)
107
+ if sampling < 1
108
+ if Kernel.rand < sampling
109
+ @transport.write("%s:%d|%s@%f" % [ stat, value, modifier, sampling ])
110
+ end
111
+ else
112
+ @transport.write("%s:%d|%s" % [ stat, value, modifier ])
113
+ end
114
+ end
112
115
  end
113
116
  end
data/test/statsy_test.rb CHANGED
@@ -40,6 +40,11 @@ class Unit < Test::Unit::TestCase
40
40
  assert_equal nil, @transport.shift
41
41
  end
42
42
 
43
+ def test_measure_should_include_sample_rate
44
+ @client.measure("foo.sampled.timing", 100, 0.999999)
45
+ assert_equal "foo.sampled.timing:100|ms@0.999999", @transport.shift
46
+ end
47
+
43
48
  def test_increment_twice_should_write_twice
44
49
  @client.increment("foo.inc", 1)
45
50
  @client.increment("foo.inc", 2)
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sean Treadway
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-09-08 00:00:00 +02:00
17
+ date: 2011-09-27 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency