metriks 0.8.1

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.
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/counter'
4
+
5
+ class CounterTest < Test::Unit::TestCase
6
+ def setup
7
+ @counter = Metriks::Counter.new
8
+ end
9
+
10
+ def test_increment
11
+ @counter.increment
12
+
13
+ assert_equal 1, @counter.count
14
+ end
15
+
16
+ def test_increment_by_more
17
+ @counter.increment 10
18
+
19
+ assert_equal 10, @counter.count
20
+ end
21
+ end
@@ -0,0 +1,38 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/histogram'
4
+
5
+ class HistogramTest < Test::Unit::TestCase
6
+ def setup
7
+ @histogram = Metriks::Histogram.new(Metriks::UniformSample.new(Metriks::Histogram::DEFAULT_SAMPLE_SIZE))
8
+ end
9
+
10
+ def test_min
11
+ @histogram.update(5)
12
+ @histogram.update(10)
13
+
14
+ assert_equal 5, @histogram.min
15
+ end
16
+
17
+ def test_max
18
+ @histogram.update(5)
19
+ @histogram.update(10)
20
+
21
+ assert_equal 10, @histogram.max
22
+ end
23
+
24
+ def test_mean
25
+ @histogram.update(5)
26
+ @histogram.update(10)
27
+
28
+ assert_equal 7, @histogram.mean
29
+ end
30
+
31
+ def test_2000
32
+ 2000.times do |idx|
33
+ @histogram.update(idx)
34
+ end
35
+
36
+ assert_equal 1999, @histogram.max
37
+ end
38
+ end
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ require 'logger'
4
+ require 'metriks/reporter/logger'
5
+
6
+ class LoggerReporterTest < Test::Unit::TestCase
7
+ def setup
8
+ @stringio = StringIO.new
9
+ @logger = ::Logger.new(@stringio)
10
+ @registry = Metriks::Registry.new
11
+
12
+ @reporter = Metriks::Reporter::Logger.new(:registry => @registry, :logger => @logger)
13
+ end
14
+
15
+ def teardown
16
+ @reporter.stop
17
+ @registry.stop
18
+ end
19
+
20
+ def test_write
21
+ @registry.meter('meter.testing').mark
22
+ @registry.counter('counter.testing').increment
23
+ @registry.timer('timer.testing').update(1.5)
24
+ @registry.utilization_timer('utilization_timer.testing').update(1.5)
25
+
26
+ @reporter.write
27
+
28
+ assert_match /time=\d/, @stringio.string
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/meter'
4
+
5
+ class MeterTest < Test::Unit::TestCase
6
+ def setup
7
+ @meter = Metriks::Meter.new
8
+ end
9
+
10
+ def teardown
11
+ @meter.stop
12
+ end
13
+
14
+ def test_meter
15
+ @meter.mark
16
+
17
+ assert_equal 1, @meter.count
18
+ end
19
+
20
+ def test_one_minute_rate
21
+ @meter.mark 1000
22
+
23
+ # Pretend it's been 5 seconds
24
+ @meter.tick
25
+
26
+ assert_equal 200, @meter.one_minute_rate
27
+ end
28
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class MetriksTest < Test::Unit::TestCase
4
+ def setup
5
+ Metriks::Registry.default.clear
6
+ end
7
+
8
+ def teardown
9
+ Metriks::Registry.default.clear
10
+ end
11
+
12
+ def test_counter
13
+ assert_not_nil Metriks.counter('testing')
14
+ end
15
+
16
+ def test_meter
17
+ assert_not_nil Metriks.meter('testing')
18
+ end
19
+
20
+ def test_timer
21
+ assert_not_nil Metriks.timer('testing')
22
+ end
23
+
24
+ def test_utilization_timer
25
+ assert_not_nil Metriks.utilization_timer('testing')
26
+ end
27
+ end
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/reporter/proc_title'
4
+
5
+ class ProcTitleReporterTest < Test::Unit::TestCase
6
+ def setup
7
+ @reporter = Metriks::Reporter::ProcTitle.new
8
+ @original_proctitle = $0.dup
9
+ end
10
+
11
+ def teardown
12
+ @reporter.stop
13
+ $0 = @original_proctitle
14
+ end
15
+
16
+ def test_generate_title
17
+ @reporter.add 'test', 'sec' do
18
+ 50.333
19
+ end
20
+
21
+ title = @reporter.send(:generate_title)
22
+
23
+ assert_equal 'test: 50.3/sec', title
24
+ end
25
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/registry'
4
+
5
+ class RegistryTest < Test::Unit::TestCase
6
+ def setup
7
+ @registry = Metriks::Registry.new
8
+ end
9
+
10
+ def teardown
11
+ @registry.stop
12
+ end
13
+
14
+ def test_counter
15
+ assert_not_nil @registry.counter('testing')
16
+ end
17
+
18
+ def test_meter
19
+ assert_not_nil @registry.meter('testing')
20
+ end
21
+
22
+ def test_timer
23
+ assert_not_nil @registry.timer('testing')
24
+ end
25
+
26
+ def test_utilization_timer
27
+ assert_not_nil @registry.utilization_timer('testing')
28
+ end
29
+
30
+ def test_calling_counter_twice
31
+ assert_not_nil @registry.counter('testing')
32
+ end
33
+
34
+ def test_default
35
+ assert_not_nil Metriks::Registry.default
36
+ end
37
+ end
@@ -0,0 +1,8 @@
1
+ require 'test/unit'
2
+ require 'pp'
3
+
4
+ require 'turn'
5
+
6
+ require 'metriks'
7
+
8
+ Thread.abort_on_exception = true
@@ -0,0 +1,29 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/timer'
4
+
5
+ class TimerTest < Test::Unit::TestCase
6
+ def setup
7
+ @timer = Metriks::Timer.new
8
+ end
9
+
10
+ def teardown
11
+ @timer.stop
12
+ end
13
+
14
+ def test_timer
15
+ @timer.time do
16
+ sleep 0.1
17
+ end
18
+
19
+ assert_in_delta 0.1, @timer.mean, 0.01
20
+ end
21
+
22
+ def test_timer_without_block
23
+ t = @timer.time
24
+ sleep 0.1
25
+ t.stop
26
+
27
+ assert_in_delta 0.1, @timer.mean, 0.01
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ require 'metriks/utilization_timer'
4
+
5
+ class UtilizationTimerTest < Test::Unit::TestCase
6
+ def setup
7
+ @timer = Metriks::UtilizationTimer.new
8
+ end
9
+
10
+ def teardown
11
+ @timer.stop
12
+ end
13
+
14
+ def test_timer
15
+ 5.times do
16
+ @timer.update(0.10)
17
+ @timer.update(0.15)
18
+ end
19
+
20
+ @timer.instance_variable_get(:@meter).tick
21
+ @timer.instance_variable_get(:@duration_meter).tick
22
+
23
+ assert_in_delta 0.25, @timer.one_minute_utilization, 0.1
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: metriks
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 8
8
+ - 1
9
+ version: 0.8.1
10
+ platform: ruby
11
+ authors:
12
+ - Eric Lindvall
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2012-02-27 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: atomic
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 0
30
+ version: "1.0"
31
+ type: :runtime
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: hitimes
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 1
42
+ - 1
43
+ version: "1.1"
44
+ type: :runtime
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: tomdoc
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
55
+ - 2
56
+ version: "0.2"
57
+ type: :development
58
+ version_requirements: *id003
59
+ description: An experimental metrics client.
60
+ email: eric@sevenscale.com
61
+ executables: []
62
+
63
+ extensions: []
64
+
65
+ extra_rdoc_files:
66
+ - README.md
67
+ - LICENSE
68
+ files:
69
+ - Gemfile
70
+ - LICENSE
71
+ - README.md
72
+ - Rakefile
73
+ - lib/metriks.rb
74
+ - lib/metriks/counter.rb
75
+ - lib/metriks/ewma.rb
76
+ - lib/metriks/histogram.rb
77
+ - lib/metriks/meter.rb
78
+ - lib/metriks/registry.rb
79
+ - lib/metriks/reporter/logger.rb
80
+ - lib/metriks/reporter/proc_title.rb
81
+ - lib/metriks/simple_moving_average.rb
82
+ - lib/metriks/timer.rb
83
+ - lib/metriks/uniform_sample.rb
84
+ - lib/metriks/utilization_timer.rb
85
+ - metriks.gemspec
86
+ - test/counter_test.rb
87
+ - test/histogram_test.rb
88
+ - test/logger_reporter_test.rb
89
+ - test/meter_test.rb
90
+ - test/metriks_test.rb
91
+ - test/proc_title_reporter_test.rb
92
+ - test/registry_test.rb
93
+ - test/test_helper.rb
94
+ - test/timer_test.rb
95
+ - test/utilization_timer_test.rb
96
+ has_rdoc: true
97
+ homepage: https://github.com/eric/metriks_client
98
+ licenses: []
99
+
100
+ post_install_message:
101
+ rdoc_options:
102
+ - --charset=UTF-8
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ segments:
110
+ - 0
111
+ version: "0"
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ requirements: []
120
+
121
+ rubyforge_project:
122
+ rubygems_version: 1.3.6
123
+ signing_key:
124
+ specification_version: 2
125
+ summary: An experimental metrics client
126
+ test_files:
127
+ - test/counter_test.rb
128
+ - test/histogram_test.rb
129
+ - test/logger_reporter_test.rb
130
+ - test/meter_test.rb
131
+ - test/metriks_test.rb
132
+ - test/proc_title_reporter_test.rb
133
+ - test/registry_test.rb
134
+ - test/timer_test.rb
135
+ - test/utilization_timer_test.rb