afstatsd 0.0.3 → 0.0.4

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.
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: