graphiterb 0.2.7 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.7
1
+ 0.2.9
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{graphiterb}
8
- s.version = "0.2.7"
8
+ s.version = "0.2.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Philip (flip) Kromer (@mrflip)"]
12
- s.date = %q{2010-09-10}
12
+ s.date = %q{2010-09-20}
13
13
  s.description = %q{Uses http://github.com/mrflip/configliere and http://graphite.wikidot.com}
14
14
  s.email = %q{info@infochimps.org}
15
15
  s.extra_rdoc_files = [
@@ -20,10 +20,14 @@ module Graphiterb
20
20
  # The Redis database.
21
21
  attr_accessor :redis
22
22
 
23
- # The Redis namespace used for the accumulators.
23
+ # The name of the Redis namespace (a string) in which
24
+ # accumulations are stored (defaults to 'graphiterb')
25
+ attr_accessor :namespace
26
+
27
+ # The Redis namespace (an object) used for the accumulators.
24
28
  attr_accessor :accumulators
25
29
 
26
- # The top-level scope under which to accumulate.
30
+ # The top-level Graphite scope inserted for each record.
27
31
  attr_accessor :main_scope
28
32
 
29
33
  # Provides methods for finding out about the node this code is
@@ -34,14 +38,24 @@ module Graphiterb
34
38
  #
35
39
  # Takes the same options as Redis.new.
36
40
  #
41
+ # Also takes the :namespace option to change where the
42
+ # accumulations are stored. Different applications can use
43
+ # different accumulators with different namespaces in a single,
44
+ # shared Redis.
45
+ #
37
46
  # @param [String] main_scope
38
47
  # @param [Hash] options
39
48
  def initialize main_scope, options={}
40
49
  require 'redis'
41
- require 'redis-namespace'
50
+ begin
51
+ require 'redis-namespace'
52
+ rescue LoadError
53
+ require 'redis/namespace'
54
+ end
42
55
  @main_scope = main_scope
43
56
  @redis = Redis.new(options)
44
- @accumulators = Redis::Namespace.new('graphiterb_accumulators', :redis => redis)
57
+ @namespace = options[:namespace] || 'graphiterb'
58
+ @accumulators = Redis::Namespace.new(namespace, :redis => redis)
45
59
  end
46
60
 
47
61
  # Increment the Graphite target +args+ by the given +amount+.
@@ -54,7 +54,7 @@ module Graphiterb
54
54
  self.current_iter = 0
55
55
  self.options = options
56
56
  self.time_interval = options[:time] || 30
57
- self.iter_interval = options[:iters] || 30
57
+ self.iter_interval = options[:iters] || 30
58
58
  end
59
59
 
60
60
  # The Graphiterb::Sender used to communicate with the Graphite
@@ -137,7 +137,7 @@ module Graphiterb
137
137
  # last ran and insert metrics into the array.")
138
138
  #
139
139
  # @param [Array<String>] metrics
140
- # @param [Time] since the last time the monitor ran
140
+ # @param [Float] since the number of seconds since the last time the monitor ran
141
141
  def get_metrics metrics, since
142
142
  raise Graphiterb::NotImplementedError.new("Override the get_metrics method of the #{self.class} class")
143
143
  end
@@ -8,6 +8,10 @@ module Graphiterb
8
8
  # The Redis database.
9
9
  attr_accessor :redis
10
10
 
11
+ # The name of the Redis namespace (a string) in which
12
+ # accumulations are stored (defaults to 'graphiterb')
13
+ attr_accessor :namespace
14
+
11
15
  # The Redis namespace used for the accumulators.
12
16
  attr_accessor :accumulators
13
17
 
@@ -20,6 +24,10 @@ module Graphiterb
20
24
  # Options are passed to Redis.new as well as
21
25
  # Graphiterb::Monitors::PeriodicMonitor.
22
26
  #
27
+ # Include the :namespace option to tell this consumer which
28
+ # Redis namespace to consume keys from (defaults to
29
+ # 'graphiterb').
30
+ #
23
31
  # Include the :regexp option if you want this monitor to only
24
32
  # consume keys corresponding to Graphite targets which match the
25
33
  # regexp. This is useful for having multiple
@@ -27,11 +35,16 @@ module Graphiterb
27
35
  # frequencies tracking different Graphite target families.
28
36
  def initialize options={}
29
37
  require 'redis'
30
- require 'redis-namespace'
38
+ begin
39
+ require 'redis-namespace'
40
+ rescue LoadError
41
+ require 'redis/namespace'
42
+ end
31
43
  @redis = Redis.new(options)
32
- @accumulators = Redis::Namespace.new('graphiterb_accumulators', :redis => @redis)
44
+ @namespace = options[:namespace] || 'graphiterb'
45
+ @accumulators = Redis::Namespace.new(namespace, :redis => @redis)
33
46
  @regexp = options[:regexp] || /.*/
34
- super('fake_scope', options)
47
+ super('fake_scope', options) # FIXME shouldn't have to use a fake scope
35
48
  end
36
49
 
37
50
  # Uses Redis' +getset+ call to retrieve total accumulated counts
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiterb
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 7
10
- version: 0.2.7
9
+ - 9
10
+ version: 0.2.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Philip (flip) Kromer (@mrflip)
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-10 00:00:00 -05:00
18
+ date: 2010-09-20 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency