dawanda-statsd-client 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -12,11 +12,11 @@ require 'rake'
12
12
  require 'jeweler'
13
13
  Jeweler::Tasks.new do |gem|
14
14
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "statsd-client"
16
- gem.homepage = "http://github.com/tomtaylor/statsd-client"
15
+ gem.name = "dawanda-statsd-client"
16
+ gem.homepage = "http://github.com/dawanda/statsd-client"
17
17
  gem.license = "MIT"
18
18
  gem.summary = "Client for statds"
19
- gem.description = %Q{TODO: longer description of your gem}
19
+ gem.description = %Q{A Ruby client for statsd}
20
20
  gem.email = "tom@tomtaylor.co.uk"
21
21
  gem.authors = ["Tom Taylor"]
22
22
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.6
@@ -25,9 +25,6 @@ BANNER
25
25
  opts.on('--by x','Value for inc/dec') do |value|
26
26
  options[:by] = value.to_i
27
27
  end
28
- opts.on('--host x', 'Use this host, when reporting') do |host|
29
- options[:host] = host
30
- end
31
28
  end.parse!
32
29
 
33
30
  command, metric, value = ARGV[0..2]
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dawanda-statsd-client}
8
- s.version = "0.1.5"
8
+ s.version = "0.1.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tom Taylor"]
@@ -5,14 +5,26 @@ require 'yaml'
5
5
  class Statsd
6
6
  class << self
7
7
  def increment(metric, options={})
8
- value = options.is_a?(Fixnum) ? options : (options[:by] || 1)
9
- client.update_stats(metric, value*factor, (options[:sample_rate] || 1))
8
+ if options.is_a?(Fixnum)
9
+ value = options
10
+ sample_rate = 1
11
+ else
12
+ value = (options[:by] || 1)
13
+ sample_rate = (options[:sample_rate] || 1)
14
+ end
15
+ client.update_stats(metric, value*factor, sample_rate)
10
16
  end
11
17
  alias_method :inc, :increment
12
18
 
13
19
  def decrement(metric, options={})
14
- value = options.is_a?(Fixnum) ? options : (options[:by] || 1)
15
- client.update_stats(metric, value*factor*(-1), (options[:sample_rate] || 1))
20
+ if options.is_a?(Fixnum)
21
+ value = options
22
+ sample_rate = 1
23
+ else
24
+ value = (options[:by] || 1)
25
+ sample_rate = (options[:sample_rate] || 1)
26
+ end
27
+ client.update_stats(metric, value*factor*(-1), sample_rate)
16
28
  end
17
29
  alias_method :dec, :decrement
18
30
 
@@ -23,7 +35,7 @@ class Statsd
23
35
 
24
36
  def client
25
37
  return Statsd::DummyClient if deactivated?
26
- @client ||= Statsd::Client.new(host, port)
38
+ @client ||= Statsd::Client.new(host, port, tcp?)
27
39
  end
28
40
 
29
41
  def config
@@ -42,6 +54,10 @@ class Statsd
42
54
  def port
43
55
  config['port'] || 8125
44
56
  end
57
+
58
+ def tcp?
59
+ config['tcp']
60
+ end
45
61
 
46
62
  # statds reports with default configs 1/10 of actual value
47
63
  def factor
@@ -64,14 +80,15 @@ class Statsd
64
80
 
65
81
  class Client
66
82
  VERSION = File.read( File.join(File.dirname(__FILE__),'..', '..', 'VERSION') ).strip
67
- attr_reader :host, :port
83
+ attr_reader :host, :port, :tcp
68
84
 
69
85
  # Initializes a Statsd client.
70
86
  #
71
87
  # @param [String] host
72
88
  # @param [Integer] port
73
- def initialize(host = 'localhost', port = 8125)
74
- @host, @port = host, port
89
+ # @param [Boolean] tcp
90
+ def initialize(host = 'localhost', port = 8125, tcp = false)
91
+ @host, @port, @tcp = host, port, tcp
75
92
  end
76
93
 
77
94
  # Sends timing statistics.
@@ -123,6 +140,7 @@ class Statsd
123
140
  private
124
141
 
125
142
  def send(data, sample_rate = 1)
143
+ #puts "sending #{data} with sample #{sample_rate}"
126
144
  sampled_data = {}
127
145
 
128
146
  if sample_rate < 1
@@ -135,12 +153,20 @@ class Statsd
135
153
  sampled_data = data
136
154
  end
137
155
 
138
- socket = UDPSocket.new
139
-
156
+ if self.tcp
157
+ socket = TCPSocket.new( self.host, self.port)
158
+ else
159
+ socket = UDPSocket.new
160
+ end
161
+
140
162
  begin
141
163
  sampled_data.each do |k,v|
142
164
  message = [k,v].join(':')
143
- socket.send(message, 0, self.host, self.port)
165
+ if self.tcp
166
+ socket.send(message, 0)
167
+ else
168
+ socket.send(message, 0, self.host, self.port)
169
+ end
144
170
  end
145
171
  rescue Exception => e
146
172
  puts "Unexpected error: #{e}"
@@ -1,7 +1,7 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
- require 'statsd-client'
4
+ require 'statsd/client'
5
5
 
6
6
  # Requires supporting files with custom matchers and macros, etc,
7
7
  # in ./support/ and its subdirectories.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dawanda-statsd-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 5
10
- version: 0.1.5
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tom Taylor