afstatsd 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/example/example.rb CHANGED
@@ -1,67 +1,67 @@
1
- require 'afstatsd'
2
-
3
- #$statsd = Statsd.new 'statsd_server.my_company.com', 8125, 20
4
-
5
- $statsd = Statsd.new # use defaults
6
- $statsd.namespace = 'test.ruby'
7
-
8
-
9
- $statsd.increment 'counter1'
10
- $statsd.increment 'counter1'
11
- $statsd.decrement 'counter1' #counters accumulate
12
-
13
- $statsd.gauge 'gauge1', 1024
14
- $statsd.gauge 'gauge1', 1025
15
- $statsd.gauge 'gauge1', 1026
16
- $statsd.gauge 'gauge1', 1027
17
- $statsd.gauge 'gauge1', 1028 # gauges get overwritten when aggregated
18
-
19
- $statsd.time('timing1'){sleep 0.01}
20
- $statsd.time('timing1'){sleep 0.02}
21
- $statsd.time('timing1'){sleep 0.03}
22
- $statsd.time('timing1'){sleep 0.04} # timings get averaged when aggregated
23
-
24
-
25
- =begin
26
-
27
- 100.times do
28
- $statsd.increment 'sampled', 0.1, 'sampled'
29
- end
30
-
31
- $statsd.set 'set1', 1099, "ez"
32
-
33
- for i in 10..19 do
34
- $statsd.increment "counter#{i}" # create a group of counters
35
- end
36
-
37
- 1000.times do
38
- $statsd.increment 'fast' # don't do this if aggregation is off
39
- end
40
-
41
- 15.times do
42
- sleep 2
43
- $statsd.increment 'slow'
44
- end
45
-
46
- =end
47
-
48
- =begin
49
- # test for thread safety
50
- threads = []
51
- start = Time.now
52
- for i in 0..9 do
53
- threads << Thread.new(i) do |j|
54
- start = Time.now
55
- 1000000.times do
56
- $statsd.increment 'inthethread'
57
- # sleep(0.01)
58
- end
59
- puts "thread #{j} says: I took #{((Time.now - start)*1000).round} ms"
60
- end
61
- end
62
- threads.each { |t| t.join }
63
-
64
- puts "total time: #{((Time.now - start)*1000).round} ms"
65
- =end
66
-
67
- puts "#{$statsd.dropped} messages dropped"
1
+ require 'afstatsd'
2
+
3
+ #$statsd = Statsd.new 'statsd_server.my_company.com', 8125, 20
4
+
5
+ $statsd = Statsd.new # use defaults
6
+ $statsd.namespace = 'test.ruby'
7
+
8
+
9
+ $statsd.increment 'counter1'
10
+ $statsd.increment 'counter1'
11
+ $statsd.decrement 'counter1' #counters accumulate
12
+
13
+ $statsd.gauge 'gauge1', 1024
14
+ $statsd.gauge 'gauge1', 1025
15
+ $statsd.gauge 'gauge1', 1026
16
+ $statsd.gauge 'gauge1', 1027
17
+ $statsd.gauge 'gauge1', 1028 # gauges get overwritten when aggregated
18
+
19
+ $statsd.time('timing1'){sleep 0.01}
20
+ $statsd.time('timing1'){sleep 0.02}
21
+ $statsd.time('timing1'){sleep 0.03}
22
+ $statsd.time('timing1'){sleep 0.04} # timings get averaged when aggregated
23
+
24
+
25
+ =begin
26
+
27
+ 100.times do
28
+ $statsd.increment 'sampled', 0.1, 'sampled'
29
+ end
30
+
31
+ $statsd.set 'set1', 1099, "ez"
32
+
33
+ for i in 10..19 do
34
+ $statsd.increment "counter#{i}" # create a group of counters
35
+ end
36
+
37
+ 1000.times do
38
+ $statsd.increment 'fast' # don't do this if aggregation is off
39
+ end
40
+
41
+ 15.times do
42
+ sleep 2
43
+ $statsd.increment 'slow'
44
+ end
45
+
46
+ =end
47
+
48
+ =begin
49
+ # test for thread safety
50
+ threads = []
51
+ start = Time.now
52
+ for i in 0..9 do
53
+ threads << Thread.new(i) do |j|
54
+ start = Time.now
55
+ 1000000.times do
56
+ $statsd.increment 'inthethread'
57
+ # sleep(0.01)
58
+ end
59
+ puts "thread #{j} says: I took #{((Time.now - start)*1000).round} ms"
60
+ end
61
+ end
62
+ threads.each { |t| t.join }
63
+
64
+ puts "total time: #{((Time.now - start)*1000).round} ms"
65
+ =end
66
+
67
+ puts "#{$statsd.dropped} messages dropped"
data/ext/mkrf_conf.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems/command.rb'
2
+ require 'rubygems/dependency_installer.rb'
3
+ begin
4
+ Gem::Command.build_args = ARGV
5
+ rescue NoMethodError
6
+ end
7
+ inst = Gem::DependencyInstaller.new
8
+ begin
9
+ if RUBY_PLATFORM =~ /linux/i
10
+ inst.install "posix_mq", "~> 2.0.0"
11
+ end
12
+ rescue
13
+ exit(1)
14
+ end
15
+
16
+ f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
17
+ f.write("task :default\n")
18
+ f.close
data/lib/afstatsd.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'socket'
2
2
  require 'forwardable'
3
3
  require 'rubygems'
4
- require 'posix_mq'
4
+ require 'posix_mq' if RUBY_PLATFORM =~ /linux/i
5
5
  require 'afstatsd/statsd_metrics'
6
6
  require 'afstatsd/statsd_aggregator'
7
7
  require 'monitor'
@@ -64,7 +64,11 @@ class Statsd
64
64
  @prefix = nil
65
65
  @postfix = nil
66
66
  @aggregator = StatsdAggregator.new(interval)
67
- set_transport :mq_transport
67
+ if RUBY_PLATFORM =~ /linux/i
68
+ set_transport :mq_transport
69
+ else
70
+ set_transport :udp_transport
71
+ end
68
72
  self.aggregating = true unless interval == 0
69
73
  @dropped = 0
70
74
  @debugging = false
@@ -154,7 +158,7 @@ class Statsd
154
158
  # @param [String] optional note (AppFirst extension to StatsD)
155
159
  def count(stat, count, sample_rate=1, note="")
156
160
  if sample_rate == 1 or rand < sample_rate
157
- send_metric StatsdMetrics::CMetric.new(expand_name(stat), count, sample_rate, note)
161
+ send_metric StatsdMetrics::CMetric.new(expand_name(stat), count.round, sample_rate, note)
158
162
  end
159
163
  end
160
164
 
@@ -200,7 +204,7 @@ class Statsd
200
204
  # @param [String] optional note (AppFirst extension to StatsD)
201
205
  def timing(stat, ms, sample_rate=1, note="")
202
206
  if sample_rate == 1 or rand < sample_rate
203
- send_metric StatsdMetrics::TMetric.new(expand_name(stat), ms, sample_rate, note)
207
+ send_metric StatsdMetrics::TMetric.new(expand_name(stat), ms.round, sample_rate, note)
204
208
  end
205
209
  end
206
210
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: afstatsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,34 +9,20 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-21 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: posix_mq
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 2.0.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: 2.0.0
12
+ date: 2013-07-03 00:00:00.000000000 Z
13
+ dependencies: []
30
14
  description: A StatsD library with AppFirst Extensions
31
15
  email: clark@appfirst.com
32
16
  executables: []
33
- extensions: []
17
+ extensions:
18
+ - ext/mkrf_conf.rb
34
19
  extra_rdoc_files: []
35
20
  files:
36
21
  - lib/afstatsd.rb
37
22
  - lib/afstatsd/statsd_aggregator.rb
38
23
  - lib/afstatsd/statsd_metrics.rb
39
24
  - example/example.rb
25
+ - ext/mkrf_conf.rb
40
26
  homepage: http://appfirst.com
41
27
  licenses: []
42
28
  post_install_message:
@@ -57,9 +43,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
43
  version: '0'
58
44
  requirements: []
59
45
  rubyforge_project:
60
- rubygems_version: 1.8.24
46
+ rubygems_version: 1.8.25
61
47
  signing_key:
62
48
  specification_version: 3
63
49
  summary: AppFirst StatsD Library
64
50
  test_files: []
65
- has_rdoc: