rubycut-metriks 0.9.9.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/Gemfile +14 -0
- data/LICENSE +21 -0
- data/README.md +405 -0
- data/Rakefile +150 -0
- data/benchmark/samplers.rb +92 -0
- data/lib/metriks/counter.rb +44 -0
- data/lib/metriks/ewma.rb +63 -0
- data/lib/metriks/exponentially_decaying_sample.rb +102 -0
- data/lib/metriks/histogram.rb +112 -0
- data/lib/metriks/meter.rb +85 -0
- data/lib/metriks/registry.rb +207 -0
- data/lib/metriks/reporter/graphite.rb +119 -0
- data/lib/metriks/reporter/librato_metrics.rb +185 -0
- data/lib/metriks/reporter/logger.rb +129 -0
- data/lib/metriks/reporter/proc_title.rb +65 -0
- data/lib/metriks/reporter/riemann.rb +119 -0
- data/lib/metriks/simple_moving_average.rb +60 -0
- data/lib/metriks/snapshot.rb +59 -0
- data/lib/metriks/time_tracker.rb +26 -0
- data/lib/metriks/timer.rb +101 -0
- data/lib/metriks/uniform_sample.rb +40 -0
- data/lib/metriks/utilization_timer.rb +43 -0
- data/lib/metriks.rb +35 -0
- data/metriks.gemspec +100 -0
- data/test/counter_test.rb +39 -0
- data/test/graphite_reporter_test.rb +41 -0
- data/test/histogram_test.rb +199 -0
- data/test/librato_metrics_reporter_test.rb +35 -0
- data/test/logger_reporter_test.rb +49 -0
- data/test/meter_test.rb +38 -0
- data/test/metriks_test.rb +31 -0
- data/test/proc_title_reporter_test.rb +25 -0
- data/test/registry_test.rb +49 -0
- data/test/riemann_reporter_test.rb +88 -0
- data/test/test_helper.rb +33 -0
- data/test/thread_error_handling_tests.rb +20 -0
- data/test/timer_test.rb +32 -0
- data/test/utilization_timer_test.rb +25 -0
- metadata +161 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'thread_error_handling_tests'
|
3
|
+
|
4
|
+
require 'metriks/reporter/librato_metrics'
|
5
|
+
|
6
|
+
class LibratoMetricsReporterTest < Test::Unit::TestCase
|
7
|
+
include ThreadErrorHandlingTests
|
8
|
+
|
9
|
+
def build_reporter(options={})
|
10
|
+
Metriks::Reporter::LibratoMetrics.new('user', 'password', { :registry => @registry }.merge(options))
|
11
|
+
end
|
12
|
+
|
13
|
+
def setup
|
14
|
+
@registry = Metriks::Registry.new
|
15
|
+
@reporter = build_reporter
|
16
|
+
end
|
17
|
+
|
18
|
+
def teardown
|
19
|
+
@reporter.stop
|
20
|
+
@registry.stop
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_write
|
24
|
+
@registry.meter('meter.testing').mark
|
25
|
+
@registry.counter('counter.testing').increment
|
26
|
+
@registry.timer('timer.testing').update(1.5)
|
27
|
+
@registry.histogram('histogram.testing').update(1.5)
|
28
|
+
@registry.utilization_timer('utilization_timer.testing').update(1.5)
|
29
|
+
@registry.gauge('gauge.testing') { 123 }
|
30
|
+
|
31
|
+
@reporter.expects(:submit)
|
32
|
+
|
33
|
+
@reporter.write
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'thread_error_handling_tests'
|
3
|
+
|
4
|
+
require 'logger'
|
5
|
+
require 'metriks/reporter/logger'
|
6
|
+
|
7
|
+
class LoggerReporterTest < Test::Unit::TestCase
|
8
|
+
include ThreadErrorHandlingTests
|
9
|
+
|
10
|
+
def build_reporter(options={})
|
11
|
+
Metriks::Reporter::Logger.new({ :registry => @registry, :logger => @logger }.merge(options))
|
12
|
+
end
|
13
|
+
|
14
|
+
def setup
|
15
|
+
@stringio = StringIO.new
|
16
|
+
@logger = ::Logger.new(@stringio)
|
17
|
+
@registry = Metriks::Registry.new
|
18
|
+
|
19
|
+
@reporter = build_reporter
|
20
|
+
|
21
|
+
@registry.meter('meter.testing').mark
|
22
|
+
@registry.counter('counter.testing').increment
|
23
|
+
@registry.timer('timer.testing').update(1.5)
|
24
|
+
@registry.histogram('histogram.testing').update(1.5)
|
25
|
+
@registry.utilization_timer('utilization_timer.testing').update(1.5)
|
26
|
+
@registry.gauge('gauge.testing').set(123)
|
27
|
+
end
|
28
|
+
|
29
|
+
def teardown
|
30
|
+
@reporter.stop
|
31
|
+
@registry.stop
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_write
|
35
|
+
@reporter.write
|
36
|
+
|
37
|
+
assert_match /time=\d/, @stringio.string
|
38
|
+
assert_match /median=\d/, @stringio.string
|
39
|
+
assert_match /value=123/, @stringio.string
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_flush
|
43
|
+
@reporter.flush
|
44
|
+
|
45
|
+
assert_match /time=\d/, @stringio.string
|
46
|
+
assert_match /median=\d/, @stringio.string
|
47
|
+
assert_match /value=123/, @stringio.string
|
48
|
+
end
|
49
|
+
end
|
data/test/meter_test.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require 'metriks/meter'
|
4
|
+
|
5
|
+
class MeterTest < Test::Unit::TestCase
|
6
|
+
include ThreadHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@meter = Metriks::Meter.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
@meter.stop
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_meter
|
17
|
+
@meter.mark
|
18
|
+
|
19
|
+
assert_equal 1, @meter.count
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_meter_threaded
|
23
|
+
thread 10, :n => 100 do
|
24
|
+
@meter.mark
|
25
|
+
end
|
26
|
+
|
27
|
+
assert_equal 1000, @meter.count
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_one_minute_rate
|
31
|
+
@meter.mark 1000
|
32
|
+
|
33
|
+
# Pretend it's been 5 seconds
|
34
|
+
@meter.tick
|
35
|
+
|
36
|
+
assert_equal 200, @meter.one_minute_rate
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,31 @@
|
|
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
|
+
|
28
|
+
def test_histogram
|
29
|
+
assert_not_nil Metriks.histogram('testing')
|
30
|
+
end
|
31
|
+
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,49 @@
|
|
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_histogram
|
31
|
+
assert_not_nil @registry.histogram('testing')
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_mismatched_metrics
|
35
|
+
@registry.histogram('histogram')
|
36
|
+
assert_raises(RuntimeError) { @registry.timer('histogram') }
|
37
|
+
|
38
|
+
@registry.timer('timer')
|
39
|
+
assert_raises(RuntimeError) { @registry.histogram('timer') }
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_calling_counter_twice
|
43
|
+
assert_not_nil @registry.counter('testing')
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_default
|
47
|
+
assert_not_nil Metriks::Registry.default
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'thread_error_handling_tests'
|
3
|
+
|
4
|
+
require 'metriks/reporter/riemann'
|
5
|
+
|
6
|
+
class RiemannReporterTest < Test::Unit::TestCase
|
7
|
+
include ThreadErrorHandlingTests
|
8
|
+
|
9
|
+
def build_reporter(options={})
|
10
|
+
Metriks::Reporter::Riemann.new({
|
11
|
+
:host => "foo",
|
12
|
+
:port => 1234,
|
13
|
+
:registry => @registry,
|
14
|
+
:default_event => {:host => "h"}
|
15
|
+
}.merge(options))
|
16
|
+
end
|
17
|
+
|
18
|
+
def setup
|
19
|
+
@registry = Metriks::Registry.new
|
20
|
+
@reporter = build_reporter
|
21
|
+
end
|
22
|
+
|
23
|
+
def teardown
|
24
|
+
@reporter.stop
|
25
|
+
@registry.stop
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_init
|
29
|
+
assert_equal @reporter.client.host, "foo"
|
30
|
+
assert_equal @reporter.client.port, 1234
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_write
|
34
|
+
@registry.meter('meter.testing').mark
|
35
|
+
@registry.counter('counter.testing').increment
|
36
|
+
@registry.timer('timer.testing').update(1.5)
|
37
|
+
@registry.histogram('histogram.testing').update(1.5)
|
38
|
+
@registry.utilization_timer('utilization_timer.testing').update(1.5)
|
39
|
+
@registry.gauge('gauge.testing') { 123 }
|
40
|
+
|
41
|
+
@reporter.client.expects(:<<).at_least_once
|
42
|
+
@reporter.client.expects(:<<).with(
|
43
|
+
:host => "h",
|
44
|
+
:service => "meter.testing count",
|
45
|
+
:metric => 1,
|
46
|
+
:tags => ["meter"],
|
47
|
+
:ttl => 90
|
48
|
+
)
|
49
|
+
@reporter.client.expects(:<<).with(
|
50
|
+
:host => "h",
|
51
|
+
:service => "counter.testing count",
|
52
|
+
:metric => 1,
|
53
|
+
:tags => ["counter"],
|
54
|
+
:ttl => 90
|
55
|
+
)
|
56
|
+
@reporter.client.expects(:<<).with(
|
57
|
+
:host => "h",
|
58
|
+
:service => "timer.testing max",
|
59
|
+
:metric => 1.5,
|
60
|
+
:tags => ["timer"],
|
61
|
+
:ttl => 90
|
62
|
+
)
|
63
|
+
@reporter.client.expects(:<<).with(
|
64
|
+
:host => "h",
|
65
|
+
:service => "histogram.testing max",
|
66
|
+
:metric => 1.5,
|
67
|
+
:tags => ["histogram"],
|
68
|
+
:ttl => 90
|
69
|
+
)
|
70
|
+
@reporter.client.expects(:<<).with(
|
71
|
+
:host => "h",
|
72
|
+
:service => "utilization_timer.testing mean",
|
73
|
+
:metric => 1.5,
|
74
|
+
:tags => ["utilization_timer"],
|
75
|
+
:ttl => 90
|
76
|
+
)
|
77
|
+
|
78
|
+
@reporter.client.expects(:<<).with(
|
79
|
+
:host => "h",
|
80
|
+
:service => "gauge.testing value",
|
81
|
+
:metric => 123,
|
82
|
+
:tags => ["gauge"],
|
83
|
+
:ttl => 90
|
84
|
+
)
|
85
|
+
|
86
|
+
@reporter.write
|
87
|
+
end
|
88
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'pp'
|
3
|
+
|
4
|
+
require 'mocha'
|
5
|
+
|
6
|
+
require 'metriks'
|
7
|
+
|
8
|
+
Thread.abort_on_exception = true
|
9
|
+
|
10
|
+
module ThreadHelper
|
11
|
+
require 'thread'
|
12
|
+
|
13
|
+
# Run the given block on n threads in parallel. Returns an array of the
|
14
|
+
# return values of each thread's last invocation of block. Options:
|
15
|
+
|
16
|
+
# :n: call block n times per thread. Default 1.
|
17
|
+
def thread(threads = 2, opts = {})
|
18
|
+
n = opts[:n] || 1
|
19
|
+
results = []
|
20
|
+
|
21
|
+
threads.times.map do |i|
|
22
|
+
Thread.new do
|
23
|
+
n.times do
|
24
|
+
results[i] = yield i
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end.each do |thread|
|
28
|
+
thread.join
|
29
|
+
end
|
30
|
+
|
31
|
+
results
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ThreadErrorHandlingTests
|
2
|
+
def test_passes_errors_in_thread_loop_to_on_error_handler
|
3
|
+
rescued_error = nil
|
4
|
+
error_handler_called = false
|
5
|
+
reporter = build_reporter(:interval => 0.0001, :on_error => lambda { |e|
|
6
|
+
error_handler_called = true
|
7
|
+
rescued_error = e
|
8
|
+
})
|
9
|
+
|
10
|
+
reporter.stubs(:write).raises(StandardError, "boom")
|
11
|
+
|
12
|
+
reporter.start
|
13
|
+
sleep 0.2
|
14
|
+
assert_equal true, error_handler_called
|
15
|
+
assert_equal "boom", rescued_error.message
|
16
|
+
ensure
|
17
|
+
reporter.stop
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
data/test/timer_test.rb
ADDED
@@ -0,0 +1,32 @@
|
|
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
|
+
3.times do
|
16
|
+
@timer.time do
|
17
|
+
sleep 0.1
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
assert_in_delta 0.1, @timer.mean, 0.01
|
22
|
+
assert_in_delta 0.1, @timer.snapshot.median, 0.01
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_timer_without_block
|
26
|
+
t = @timer.time
|
27
|
+
sleep 0.1
|
28
|
+
t.stop
|
29
|
+
|
30
|
+
assert_in_delta 0.1, @timer.mean, 0.01
|
31
|
+
end
|
32
|
+
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,161 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rubycut-metriks
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.9.4
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Eric Lindvall
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-02-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: atomic
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.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: '1.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: hitimes
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.1'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.1'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: avl_tree
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.1.2
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.1.2
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: mocha
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.10'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0.10'
|
78
|
+
description: An experimental metrics client.
|
79
|
+
email: eric@sevenscale.com
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files:
|
83
|
+
- README.md
|
84
|
+
- LICENSE
|
85
|
+
files:
|
86
|
+
- Gemfile
|
87
|
+
- LICENSE
|
88
|
+
- README.md
|
89
|
+
- Rakefile
|
90
|
+
- benchmark/samplers.rb
|
91
|
+
- lib/metriks.rb
|
92
|
+
- lib/metriks/counter.rb
|
93
|
+
- lib/metriks/ewma.rb
|
94
|
+
- lib/metriks/exponentially_decaying_sample.rb
|
95
|
+
- lib/metriks/histogram.rb
|
96
|
+
- lib/metriks/meter.rb
|
97
|
+
- lib/metriks/registry.rb
|
98
|
+
- lib/metriks/reporter/graphite.rb
|
99
|
+
- lib/metriks/reporter/librato_metrics.rb
|
100
|
+
- lib/metriks/reporter/logger.rb
|
101
|
+
- lib/metriks/reporter/proc_title.rb
|
102
|
+
- lib/metriks/reporter/riemann.rb
|
103
|
+
- lib/metriks/simple_moving_average.rb
|
104
|
+
- lib/metriks/snapshot.rb
|
105
|
+
- lib/metriks/time_tracker.rb
|
106
|
+
- lib/metriks/timer.rb
|
107
|
+
- lib/metriks/uniform_sample.rb
|
108
|
+
- lib/metriks/utilization_timer.rb
|
109
|
+
- metriks.gemspec
|
110
|
+
- test/counter_test.rb
|
111
|
+
- test/graphite_reporter_test.rb
|
112
|
+
- test/histogram_test.rb
|
113
|
+
- test/librato_metrics_reporter_test.rb
|
114
|
+
- test/logger_reporter_test.rb
|
115
|
+
- test/meter_test.rb
|
116
|
+
- test/metriks_test.rb
|
117
|
+
- test/proc_title_reporter_test.rb
|
118
|
+
- test/registry_test.rb
|
119
|
+
- test/riemann_reporter_test.rb
|
120
|
+
- test/test_helper.rb
|
121
|
+
- test/thread_error_handling_tests.rb
|
122
|
+
- test/timer_test.rb
|
123
|
+
- test/utilization_timer_test.rb
|
124
|
+
homepage: https://github.com/eric/metriks
|
125
|
+
licenses: []
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options:
|
128
|
+
- --charset=UTF-8
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
requirements: []
|
144
|
+
rubyforge_project:
|
145
|
+
rubygems_version: 1.8.25
|
146
|
+
signing_key:
|
147
|
+
specification_version: 2
|
148
|
+
summary: An experimental metrics client
|
149
|
+
test_files:
|
150
|
+
- test/counter_test.rb
|
151
|
+
- test/graphite_reporter_test.rb
|
152
|
+
- test/histogram_test.rb
|
153
|
+
- test/librato_metrics_reporter_test.rb
|
154
|
+
- test/logger_reporter_test.rb
|
155
|
+
- test/meter_test.rb
|
156
|
+
- test/metriks_test.rb
|
157
|
+
- test/proc_title_reporter_test.rb
|
158
|
+
- test/registry_test.rb
|
159
|
+
- test/riemann_reporter_test.rb
|
160
|
+
- test/timer_test.rb
|
161
|
+
- test/utilization_timer_test.rb
|