metriks 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/metriks.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Metriks
3
- VERSION = '0.9.0'
3
+ VERSION = '0.9.1'
4
4
 
5
5
  def self.get(name)
6
6
  Metriks::Registry.default.get(name)
@@ -24,4 +24,4 @@ module Metriks
24
24
  end
25
25
 
26
26
  require 'metriks/registry'
27
- require 'metriks/reporter/proc_title'
27
+ require 'metriks/reporter/proc_title'
@@ -2,9 +2,11 @@
2
2
  module Metriks::Reporter
3
3
  class Graphite
4
4
  def initialize(host, port, options = {})
5
- @host = host
6
- @port = port
7
- @prefix = options[:prefix]
5
+ @host = host
6
+ @port = port
7
+
8
+ @prefix = options[:prefix]
9
+
8
10
  @registry = options[:registry] || Metriks::Registry.default
9
11
  @interval = options[:interval] || 60
10
12
  @on_errror = options[:on_error] || proc { |ex| }
@@ -36,6 +38,11 @@ module Metriks::Reporter
36
38
  @thread = nil
37
39
  end
38
40
 
41
+ def restart
42
+ stop
43
+ start
44
+ end
45
+
39
46
  def write
40
47
  @registry.each do |name, metric|
41
48
  case metric
@@ -19,13 +19,15 @@ module Metriks::Reporter
19
19
 
20
20
 
21
21
  def initialize(email, token, options = {})
22
- @email = email
23
- @token = token
24
- @prefix = options[:prefix]
22
+ @email = email
23
+ @token = token
24
+
25
+ @prefix = options[:prefix]
26
+ @source = options[:source]
27
+
25
28
  @registry = options[:registry] || Metriks::Registry.default
26
29
  @interval = options[:interval] || 60
27
30
  @on_errror = options[:on_error] || proc { |ex| }
28
- @source = options[:source]
29
31
  end
30
32
 
31
33
  def start
@@ -49,6 +51,11 @@ module Metriks::Reporter
49
51
  @thread = nil
50
52
  end
51
53
 
54
+ def restart
55
+ stop
56
+ start
57
+ end
58
+
52
59
  def write
53
60
  gauges = []
54
61
  @registry.each do |name, metric|
@@ -3,12 +3,13 @@ require 'logger'
3
3
  module Metriks::Reporter
4
4
  class Logger
5
5
  def initialize(options = {})
6
- @registry = options[:registry] || Metriks::Registry.default
7
6
  @logger = options[:logger] || ::Logger.new(STDOUT)
8
7
  @log_level = options[:log_level] || ::Logger::INFO
9
8
  @prefix = options[:prefix] || 'metriks:'
10
- @interval = options[:interval] || 60
11
- @on_errror = options[:on_error] || proc { |ex| }
9
+
10
+ @registry = options[:registry] || Metriks::Registry.default
11
+ @interval = options[:interval] || 60
12
+ @on_errror = options[:on_error] || proc { |ex| }
12
13
  end
13
14
 
14
15
  def start
@@ -32,7 +33,20 @@ module Metriks::Reporter
32
33
  @thread = nil
33
34
  end
34
35
 
36
+ def restart
37
+ stop
38
+ start
39
+ end
40
+
41
+ def flush
42
+ if !@last_write || @last_write.min != Time.now.min
43
+ write
44
+ end
45
+ end
46
+
35
47
  def write
48
+ @last_write = Time.now
49
+
36
50
  @registry.each do |name, metric|
37
51
  case metric
38
52
  when Metriks::Meter
@@ -1,11 +1,12 @@
1
1
  module Metriks::Reporter
2
2
  class ProcTitle
3
3
  def initialize(options = {})
4
+ @rounding = options[:rounding] || 1
5
+ @prefix = options[:prefix] || $0.dup
6
+
4
7
  @interval = options[:interval] || 5
5
- @rounding = options[:rounding] || 1
6
8
  @on_errror = options[:on_error] || proc { |ex| }
7
9
 
8
- @prefix = $0.dup
9
10
  @metrics = []
10
11
  end
11
12
 
@@ -40,6 +41,11 @@ module Metriks::Reporter
40
41
  @thread = nil
41
42
  end
42
43
 
44
+ def restart
45
+ stop
46
+ start
47
+ end
48
+
43
49
  protected
44
50
  def generate_title
45
51
  @metrics.collect do |name, suffix, block|
data/metriks.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'metriks'
16
- s.version = '0.9.0'
17
- s.date = '2012-03-03'
16
+ s.version = '0.9.1'
17
+ s.date = '2012-03-06'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
@@ -10,6 +10,11 @@ class LoggerReporterTest < Test::Unit::TestCase
10
10
  @registry = Metriks::Registry.new
11
11
 
12
12
  @reporter = Metriks::Reporter::Logger.new(:registry => @registry, :logger => @logger)
13
+
14
+ @registry.meter('meter.testing').mark
15
+ @registry.counter('counter.testing').increment
16
+ @registry.timer('timer.testing').update(1.5)
17
+ @registry.utilization_timer('utilization_timer.testing').update(1.5)
13
18
  end
14
19
 
15
20
  def teardown
@@ -18,14 +23,16 @@ class LoggerReporterTest < Test::Unit::TestCase
18
23
  end
19
24
 
20
25
  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
26
  @reporter.write
27
27
 
28
28
  assert_match /time=\d/, @stringio.string
29
29
  assert_match /median=\d/, @stringio.string
30
30
  end
31
+
32
+ def test_flush
33
+ @reporter.flush
34
+
35
+ assert_match /time=\d/, @stringio.string
36
+ assert_match /median=\d/, @stringio.string
37
+ end
31
38
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 9
8
- - 0
9
- version: 0.9.0
8
+ - 1
9
+ version: 0.9.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Eric Lindvall
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-03-03 00:00:00 -08:00
17
+ date: 2012-03-06 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency