fozzie 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,193 @@
1
- Fozzie
2
- ===========
1
+ # Fozzie
3
2
 
4
- Ruby gem for registering metrics via Statsd... with some nice extras.
3
+ Ruby gem for registering statistics to Statsd in various ways.
5
4
 
6
- ![Fozzie](http://upload.wikimedia.org/wikipedia/en/6/66/Fozzie-bear.jpg)
5
+ ## Basic Usage
6
+
7
+ Send through statistics depending on the type you want to provide:
8
+
9
+ ### Increment counter
10
+
11
+ Stats.increment 'wat'
12
+
13
+ ### Decrement counter
14
+
15
+ Stats.decrement 'wat'
16
+
17
+ ### Decrement counter - provide a value as integer
18
+
19
+ Stats.count 'wat', 5
20
+
21
+ ### Basic timing - provide a value in milliseconds
22
+
23
+ Stats.timing 'wat', 500
24
+
25
+ ### Timings - provide a block to time against (inline and do syntax supported)
26
+
27
+ Stats.time 'wat' { sleep 5 }
28
+
29
+ Stats.time_to_do 'wat' do
30
+ sleep 5
31
+ end
32
+
33
+ Stats.time_for 'wat' { sleep 5 }
34
+
35
+ ### Events - register different events
36
+
37
+
38
+ #### Commits
39
+
40
+ Stats.commit
41
+
42
+ Stats.committed
43
+
44
+ #### Builds
45
+
46
+ Stats.built
47
+
48
+ Stats.build
49
+
50
+ #### Deployments
51
+
52
+ Stats.deployed
53
+
54
+ With a custom app:
55
+
56
+ Stats.deployed 'watapp'
57
+
58
+ Stats.deploy
59
+
60
+ With a custom app:
61
+
62
+ Stats.deploy 'watapp'
63
+
64
+ #### Custom
65
+
66
+ Stats.event 'pull'
67
+
68
+ With a custom app:
69
+
70
+ Stats.event 'pull', 'watapp'
71
+
72
+ ### Boolean result - pass a value to be true or false, and increment on true
73
+
74
+ Stats.increment_on 'wat', duck.valid?
75
+
76
+ ## Sampling
77
+
78
+ Each of the above methods accepts a sample rate as the last argument (before any applicable blocks), e.g:
79
+
80
+ Stats.increment 'wat', 10
81
+
82
+ Stats.decrement 'wat', 10
83
+
84
+ Stats.count 'wat', 5, 10
85
+
86
+ ## Namespaces
87
+
88
+ Fozzie supports the following namespaces as default
89
+
90
+ Stats.increment 'wat'
91
+ S.increment 'wat'
92
+ Statistics.increment 'wat'
93
+ Warehouse.increment 'wat'
94
+
95
+ You can customise this via the YAML configuration (see instructions below)
96
+
97
+ ## Configuration
98
+
99
+ Fozzie is configured via a YAML or by setting a block against the Fozzie namespace.
100
+
101
+ ### YAML
102
+
103
+ Create a `fozzie.yml` within a `config` folder on the root of your app, which contains your settings for each env. Simple, verbose example below.
104
+
105
+ development:
106
+ appname: wat
107
+ host: '127.0.0.1'
108
+ port: 8125
109
+ namespaces: %w{Foo Bar Wat}
110
+ test:
111
+ appname: wat
112
+ host: 'localhost'
113
+ port: 8125
114
+ namespaces: %w{Foo Bar Wat}
115
+ production:
116
+ appname: wat
117
+ host: 'stats.wat.com'
118
+ port: 8125
119
+ namespaces: %w{Foo Bar Wat}
120
+
121
+ ### Configure block
122
+
123
+ Fozzie.configure do |config|
124
+ config.appname = "wat"
125
+ config.host = "127.0.0.1"
126
+ config.port = 8125
127
+ end
128
+
129
+ ## Middleware
130
+
131
+ To time and register the controller actions within your Rails application, Fozzie provides some middleware.
132
+
133
+ ### Rack
134
+
135
+ require 'rack'
136
+ require 'fozzie'
137
+
138
+ app = Rack::Builder.new {
139
+ use Fozzie::Rack::Middleware
140
+ lambda { |env| [200, {'Content-Type' => 'text/plain'}, 'OK'] }
141
+ }
142
+
143
+ ### Rails
144
+
145
+ Based on the Rack middleware above, but is more involved in it's construction of the bucket value.
146
+
147
+ Add the following to your `config/environment.rb`
148
+
149
+ Rails::Initializer.run do |config|
150
+ config.middleware.use 'Fozzie::Rails::Middleware'
151
+ end
152
+
153
+ ## Bucket name prefixes
154
+
155
+ Fozzie will construct bucket name prefixes according to your settings and environment. Example would be
156
+
157
+ Stats.increment 'foo'
158
+
159
+ Would be represented as the following Graphite bucket:
160
+
161
+ wat.your-computer-name.development.foo
162
+
163
+ When working on your development machine. This allows multiple application instances, in different environments, to be distinguished easily, and collated in Graphite quickly.
164
+
165
+ ## Low level behaviour
166
+
167
+ The current implementation of Fozzie wraps the sending of the statistic in a timeout and rescue block, which prevent long host lookups (i.e. if your stats server disappears) and minimises impact on your code or application if something is erroring at a low level.
168
+
169
+ Fozzie will try to log these errors, but only if a logger has been applied (which by default it does not). Examples:
170
+
171
+ require 'logger'
172
+ Fozzie.logger = Logger.new(STDOUT)
173
+
174
+ require 'logger'
175
+ Fozzie.logger = Logger.new 'log/fozzie.log'
176
+
177
+ This may change, depending on feedback and more production experience.
178
+
179
+ ## Credits
180
+
181
+ Currently supported and maintained by [Marc Watts](marc.watts@lonelyplanet.co.uk) @Lonely Planet Online.
182
+
183
+ Big thanks to:
184
+
185
+ * [Mark Barger](mark.barger@lonelyplanet.co.uk) for support in trying to make this Gem useful.
186
+
187
+ * [Etsy](http://codeascraft.etsy.com/) who's [Statsd](https://github.com/etsy/statsd) product has enabled us to come such a long way in a very short period of time. We love Etsy.
188
+
189
+ * [https://github.com/reinh](https://github.com/reinh/statsd) for his [statsd](https://github.com/reinh/statsd) Gem.
190
+
191
+ ## Comments and Feedback
192
+
193
+ Please [contact](marc.watts@lonelyplanet.co.uk) me on anything... improvements will be needed and are welcomed greatly.
data/doc/lib/fozzie.html CHANGED
@@ -105,6 +105,8 @@ designed to make gathering stastistics from applications easy, fast, and effecti
105
105
  <a class="pilcrow" href="#section-5">&#182;</a>
106
106
  </div>
107
107
  <p>Set a logger</p>
108
+
109
+ <p><code>Fozzie.logger = Logger.new(STDOUT)</code></p>
108
110
  </td>
109
111
  <td class=code>
110
112
  <div class='highlight'><pre> <span class="k">def</span> <span class="nf">logger</span><span class="o">=</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
@@ -118,6 +120,8 @@ designed to make gathering stastistics from applications easy, fast, and effecti
118
120
  <a class="pilcrow" href="#section-6">&#182;</a>
119
121
  </div>
120
122
  <p>Accessor for logger</p>
123
+
124
+ <p><code>Fozzie.logger.warn &lsquo;foo&rsquo;</code></p>
121
125
  </td>
122
126
  <td class=code>
123
127
  <div class='highlight'><pre> <span class="k">def</span> <span class="nf">logger</span>
@@ -273,8 +273,8 @@
273
273
 
274
274
  </td>
275
275
  <td class=code>
276
- <div class='highlight'><pre> <span class="k">def</span> <span class="nf">event</span><span class="p">(</span><span class="nb">type</span><span class="p">,</span> <span class="n">app</span> <span class="o">=</span> <span class="kp">nil</span><span class="p">)</span>
277
- <span class="n">timing</span> <span class="o">[</span><span class="s2">&quot;event&quot;</span><span class="p">,</span> <span class="nb">type</span><span class="o">.</span><span class="n">to_s</span><span class="p">,</span> <span class="n">app</span><span class="o">]</span><span class="p">,</span> <span class="no">Time</span><span class="o">.</span><span class="n">now</span><span class="o">.</span><span class="n">usec</span>
276
+ <div class='highlight'><pre> <span class="k">def</span> <span class="nf">event</span><span class="p">(</span><span class="n">type</span><span class="p">,</span> <span class="n">app</span> <span class="o">=</span> <span class="kp">nil</span><span class="p">)</span>
277
+ <span class="n">timing</span> <span class="o">[</span><span class="s2">&quot;event&quot;</span><span class="p">,</span> <span class="n">type</span><span class="o">.</span><span class="n">to_s</span><span class="p">,</span> <span class="n">app</span><span class="o">]</span><span class="p">,</span> <span class="no">Time</span><span class="o">.</span><span class="n">now</span><span class="o">.</span><span class="n">usec</span>
278
278
  <span class="k">end</span>
279
279
 
280
280
  <span class="k">end</span>
@@ -39,7 +39,9 @@
39
39
 
40
40
  </td>
41
41
  <td class=code>
42
- <div class='highlight'><pre><span class="k">module</span> <span class="nn">Fozzie</span>
42
+ <div class='highlight'><pre><span class="nb">require</span> <span class="s1">&#39;socket&#39;</span>
43
+
44
+ <span class="k">module</span> <span class="nn">Fozzie</span>
43
45
  <span class="k">module</span> <span class="nn">Socket</span>
44
46
 
45
47
  <span class="no">RESERVED_CHARS_REGEX</span> <span class="o">=</span> <span class="sr">/[\:\|\@]/</span>
@@ -57,13 +59,13 @@
57
59
  <p>Creates the Statsd key from the given values, and sends to socket (depending on sample rate)</p>
58
60
  </td>
59
61
  <td class=code>
60
- <div class='highlight'><pre> <span class="k">def</span> <span class="nf">send</span><span class="p">(</span><span class="n">stat</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">)</span>
62
+ <div class='highlight'><pre> <span class="k">def</span> <span class="nf">send</span><span class="p">(</span><span class="n">stat</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">type</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">)</span>
61
63
  <span class="n">stat</span> <span class="o">=</span> <span class="o">[</span><span class="n">stat</span><span class="o">].</span><span class="n">flatten</span><span class="o">.</span><span class="n">compact</span><span class="o">.</span><span class="n">collect</span><span class="p">(</span><span class="o">&amp;</span><span class="ss">:to_s</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">downcase</span>
62
64
  <span class="n">stat</span> <span class="o">=</span> <span class="n">stat</span><span class="o">.</span><span class="n">gsub</span><span class="p">(</span><span class="s1">&#39;::&#39;</span><span class="p">,</span> <span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">gsub</span><span class="p">(</span><span class="no">RESERVED_CHARS_REGEX</span><span class="p">,</span> <span class="s1">&#39;_&#39;</span><span class="p">)</span>
63
65
 
64
66
  <span class="n">k</span> <span class="o">=</span> <span class="o">[</span><span class="no">Fozzie</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">data_prefix</span><span class="p">,</span> <span class="n">stat</span><span class="o">].</span><span class="n">compact</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
65
67
  <span class="n">k</span> <span class="o">&lt;&lt;</span> <span class="s2">&quot;:&quot;</span>
66
- <span class="n">k</span> <span class="o">&lt;&lt;</span> <span class="o">[</span><span class="n">delta</span><span class="p">,</span> <span class="nb">type</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span>
68
+ <span class="n">k</span> <span class="o">&lt;&lt;</span> <span class="o">[</span><span class="n">delta</span><span class="p">,</span> <span class="n">type</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span>
67
69
  <span class="n">k</span> <span class="o">&lt;&lt;</span> <span class="s1">&#39;@%s&#39;</span> <span class="o">%</span> <span class="n">sample_rate</span><span class="o">.</span><span class="n">to_s</span> <span class="k">if</span> <span class="n">sample_rate</span> <span class="o">&lt;</span> <span class="mi">1</span>
68
70
 
69
71
  <span class="n">sampled</span><span class="p">(</span><span class="n">sample_rate</span><span class="p">)</span> <span class="p">{</span> <span class="n">send_to_socket</span><span class="p">(</span><span class="n">k</span><span class="o">.</span><span class="n">strip</span><span class="p">)</span> <span class="p">}</span>
@@ -115,7 +117,7 @@
115
117
  </td>
116
118
  <td class=code>
117
119
  <div class='highlight'><pre> <span class="k">def</span> <span class="nf">socket</span>
118
- <span class="vi">@socket</span> <span class="o">||=</span> <span class="no">UDPSocket</span><span class="o">.</span><span class="n">new</span>
120
+ <span class="vi">@socket</span> <span class="o">||=</span> <span class="o">::</span><span class="no">UDPSocket</span><span class="o">.</span><span class="n">new</span>
119
121
  <span class="k">end</span>
120
122
 
121
123
  <span class="k">end</span>
data/fozzie.gemspec CHANGED
@@ -5,10 +5,13 @@ require "fozzie/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "fozzie"
7
7
  s.version = Fozzie::VERSION
8
- s.authors = ["Marc Watts"]
9
- s.email = ["marcky.sharky@gmail.com"]
10
- s.summary = %q{Statsd gem bolt-on}
11
- s.description = %q{Gem allows statistics gathering from Ruby and Ruby on Rails applications to Statsd}
8
+ s.authors = ["Marc Watts", "Mark Barger"]
9
+ s.email = ["marc.watts@lonelyplanet.co.uk"]
10
+ s.summary = %q{Statsd Ruby gem from Lonely Planet Online}
11
+ s.description = %q{
12
+ Gem to make statistics sending to Statsd from Ruby applications simple and efficient as possible.
13
+ Inspired by the original ruby-statsd gem by Etsy, currently used by Lonely Planet Online.
14
+ }
12
15
 
13
16
  s.rubyforge_project = "fozzie"
14
17
 
@@ -16,7 +19,7 @@ Gem::Specification.new do |s|
16
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
20
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
21
  s.require_paths = ["lib"]
19
-
22
+
20
23
  s.add_dependency 'sys-uname'
21
24
 
22
25
  s.add_development_dependency 'rake'
@@ -28,7 +31,7 @@ Gem::Specification.new do |s|
28
31
  s.add_development_dependency 'simplecov'
29
32
  s.add_development_dependency 'sinatra'
30
33
  s.add_development_dependency 'actionpack'
31
-
34
+
32
35
  s.add_development_dependency 'guard'
33
36
  s.add_development_dependency 'guard-rspec'
34
37
  s.add_development_dependency 'guard-rocco'
data/lib/fozzie.rb CHANGED
@@ -36,11 +36,16 @@ module Fozzie
36
36
  end
37
37
 
38
38
  # Set a logger
39
+ #
40
+ #
41
+ # `Fozzie.logger = Logger.new(STDOUT)`
39
42
  def logger=(logger)
40
43
  @logger = logger
41
44
  end
42
45
 
43
46
  # Accessor for logger
47
+ #
48
+ # `Fozzie.logger.warn 'foo'`
44
49
  def logger
45
50
  @logger
46
51
  end
data/lib/fozzie/socket.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'socket'
2
+
1
3
  module Fozzie
2
4
  module Socket
3
5
 
@@ -42,7 +44,7 @@ module Fozzie
42
44
 
43
45
  # The Socket we want to use to send data
44
46
  def socket
45
- @socket ||= UDPSocket.new
47
+ @socket ||= ::UDPSocket.new
46
48
  end
47
49
 
48
50
  end
@@ -1,3 +1,3 @@
1
1
  module Fozzie
2
- VERSION = "0.0.17"
2
+ VERSION = "0.0.18"
3
3
  end
metadata CHANGED
@@ -1,19 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fozzie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marc Watts
9
+ - Mark Barger
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2012-03-28 00:00:00.000000000 Z
13
+ date: 2012-04-04 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: sys-uname
16
- requirement: &70183205078380 !ruby/object:Gem::Requirement
17
+ requirement: &70348897347620 !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ! '>='
@@ -21,10 +22,10 @@ dependencies:
21
22
  version: '0'
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *70183205078380
25
+ version_requirements: *70348897347620
25
26
  - !ruby/object:Gem::Dependency
26
27
  name: rake
27
- requirement: &70183205093600 !ruby/object:Gem::Requirement
28
+ requirement: &70348897347100 !ruby/object:Gem::Requirement
28
29
  none: false
29
30
  requirements:
30
31
  - - ! '>='
@@ -32,10 +33,10 @@ dependencies:
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *70183205093600
36
+ version_requirements: *70348897347100
36
37
  - !ruby/object:Gem::Dependency
37
38
  name: rspec
38
- requirement: &70183205092780 !ruby/object:Gem::Requirement
39
+ requirement: &70348897346500 !ruby/object:Gem::Requirement
39
40
  none: false
40
41
  requirements:
41
42
  - - ! '>='
@@ -43,10 +44,10 @@ dependencies:
43
44
  version: '0'
44
45
  type: :development
45
46
  prerelease: false
46
- version_requirements: *70183205092780
47
+ version_requirements: *70348897346500
47
48
  - !ruby/object:Gem::Dependency
48
49
  name: mocha
49
- requirement: &70183205091800 !ruby/object:Gem::Requirement
50
+ requirement: &70348897345740 !ruby/object:Gem::Requirement
50
51
  none: false
51
52
  requirements:
52
53
  - - ! '>='
@@ -54,10 +55,10 @@ dependencies:
54
55
  version: '0'
55
56
  type: :development
56
57
  prerelease: false
57
- version_requirements: *70183205091800
58
+ version_requirements: *70348897345740
58
59
  - !ruby/object:Gem::Dependency
59
60
  name: syntax
60
- requirement: &70183205090760 !ruby/object:Gem::Requirement
61
+ requirement: &70348897344940 !ruby/object:Gem::Requirement
61
62
  none: false
62
63
  requirements:
63
64
  - - ! '>='
@@ -65,10 +66,10 @@ dependencies:
65
66
  version: '0'
66
67
  type: :development
67
68
  prerelease: false
68
- version_requirements: *70183205090760
69
+ version_requirements: *70348897344940
69
70
  - !ruby/object:Gem::Dependency
70
71
  name: rack-test
71
- requirement: &70183205089920 !ruby/object:Gem::Requirement
72
+ requirement: &70348897344260 !ruby/object:Gem::Requirement
72
73
  none: false
73
74
  requirements:
74
75
  - - ! '>='
@@ -76,10 +77,10 @@ dependencies:
76
77
  version: '0'
77
78
  type: :development
78
79
  prerelease: false
79
- version_requirements: *70183205089920
80
+ version_requirements: *70348897344260
80
81
  - !ruby/object:Gem::Dependency
81
82
  name: simplecov
82
- requirement: &70183205089140 !ruby/object:Gem::Requirement
83
+ requirement: &70348897343500 !ruby/object:Gem::Requirement
83
84
  none: false
84
85
  requirements:
85
86
  - - ! '>='
@@ -87,10 +88,10 @@ dependencies:
87
88
  version: '0'
88
89
  type: :development
89
90
  prerelease: false
90
- version_requirements: *70183205089140
91
+ version_requirements: *70348897343500
91
92
  - !ruby/object:Gem::Dependency
92
93
  name: sinatra
93
- requirement: &70183205088360 !ruby/object:Gem::Requirement
94
+ requirement: &70348897342980 !ruby/object:Gem::Requirement
94
95
  none: false
95
96
  requirements:
96
97
  - - ! '>='
@@ -98,10 +99,10 @@ dependencies:
98
99
  version: '0'
99
100
  type: :development
100
101
  prerelease: false
101
- version_requirements: *70183205088360
102
+ version_requirements: *70348897342980
102
103
  - !ruby/object:Gem::Dependency
103
104
  name: actionpack
104
- requirement: &70183205087460 !ruby/object:Gem::Requirement
105
+ requirement: &70348897342480 !ruby/object:Gem::Requirement
105
106
  none: false
106
107
  requirements:
107
108
  - - ! '>='
@@ -109,10 +110,10 @@ dependencies:
109
110
  version: '0'
110
111
  type: :development
111
112
  prerelease: false
112
- version_requirements: *70183205087460
113
+ version_requirements: *70348897342480
113
114
  - !ruby/object:Gem::Dependency
114
115
  name: guard
115
- requirement: &70183205086840 !ruby/object:Gem::Requirement
116
+ requirement: &70348897357340 !ruby/object:Gem::Requirement
116
117
  none: false
117
118
  requirements:
118
119
  - - ! '>='
@@ -120,10 +121,10 @@ dependencies:
120
121
  version: '0'
121
122
  type: :development
122
123
  prerelease: false
123
- version_requirements: *70183205086840
124
+ version_requirements: *70348897357340
124
125
  - !ruby/object:Gem::Dependency
125
126
  name: guard-rspec
126
- requirement: &70183205102560 !ruby/object:Gem::Requirement
127
+ requirement: &70348897350820 !ruby/object:Gem::Requirement
127
128
  none: false
128
129
  requirements:
129
130
  - - ! '>='
@@ -131,10 +132,10 @@ dependencies:
131
132
  version: '0'
132
133
  type: :development
133
134
  prerelease: false
134
- version_requirements: *70183205102560
135
+ version_requirements: *70348897350820
135
136
  - !ruby/object:Gem::Dependency
136
137
  name: guard-rocco
137
- requirement: &70183205101880 !ruby/object:Gem::Requirement
138
+ requirement: &70348897349720 !ruby/object:Gem::Requirement
138
139
  none: false
139
140
  requirements:
140
141
  - - ! '>='
@@ -142,10 +143,10 @@ dependencies:
142
143
  version: '0'
143
144
  type: :development
144
145
  prerelease: false
145
- version_requirements: *70183205101880
146
+ version_requirements: *70348897349720
146
147
  - !ruby/object:Gem::Dependency
147
148
  name: fl-rocco
148
- requirement: &70183205101220 !ruby/object:Gem::Requirement
149
+ requirement: &70348897385560 !ruby/object:Gem::Requirement
149
150
  none: false
150
151
  requirements:
151
152
  - - ! '>='
@@ -153,11 +154,12 @@ dependencies:
153
154
  version: '0'
154
155
  type: :development
155
156
  prerelease: false
156
- version_requirements: *70183205101220
157
- description: Gem allows statistics gathering from Ruby and Ruby on Rails applications
158
- to Statsd
157
+ version_requirements: *70348897385560
158
+ description: ! "\n Gem to make statistics sending to Statsd from Ruby applications
159
+ simple and efficient as possible.\n Inspired by the original ruby-statsd gem
160
+ by Etsy, currently used by Lonely Planet Online.\n "
159
161
  email:
160
- - marcky.sharky@gmail.com
162
+ - marc.watts@lonelyplanet.co.uk
161
163
  executables: []
162
164
  extensions: []
163
165
  extra_rdoc_files: []
@@ -209,7 +211,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
211
  version: '0'
210
212
  segments:
211
213
  - 0
212
- hash: 75122058829835203
214
+ hash: -636781354410393457
213
215
  required_rubygems_version: !ruby/object:Gem::Requirement
214
216
  none: false
215
217
  requirements:
@@ -218,13 +220,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
220
  version: '0'
219
221
  segments:
220
222
  - 0
221
- hash: 75122058829835203
223
+ hash: -636781354410393457
222
224
  requirements: []
223
225
  rubyforge_project: fozzie
224
226
  rubygems_version: 1.8.10
225
227
  signing_key:
226
228
  specification_version: 3
227
- summary: Statsd gem bolt-on
229
+ summary: Statsd Ruby gem from Lonely Planet Online
228
230
  test_files:
229
231
  - spec/config/fozzie.yml
230
232
  - spec/lib/core_ext/hash_spec.rb