Class: Harness::Meter

Inherits:
Object
  • Object
show all
Defined in:
lib/harness/meter.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Meter

Returns a new instance of Meter.

Raises:



3
4
5
6
7
# File 'lib/harness/meter.rb', line 3

def initialize(name)
  @name = name

  raise Harness::NoCounter, "#{@name} is not being metered" unless redis.exists key
end

Instance Method Details

#per(rate, base = Time.now) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/harness/meter.rb', line 21

def per(rate, base = Time.now)
  gauge = Gauge.new :value => redis.zcount(key, base.to_f - rate, base.to_f)

  if words = rate_in_words(rate)
    gauge.name = "#{@name} per #{words}"
    gauge.id = "#{@name}-per-#{words}"
  else
    gauge.id = "#{@name} gauge"
  end

  gauge.time = Time.now

  gauge
end

#per_hourObject



17
18
19
# File 'lib/harness/meter.rb', line 17

def per_hour
  per 1.hour
end

#per_minuteObject



13
14
15
# File 'lib/harness/meter.rb', line 13

def per_minute
  per 1.minute
end

#per_secondObject



9
10
11
# File 'lib/harness/meter.rb', line 9

def per_second
  per 1.second
end