lib/drone/metrics/timer.rb in drone-0.0.1 vs lib/drone/metrics/timer.rb in drone-0.0.2
- old
+ new
@@ -3,26 +3,22 @@
require File.expand_path('..//meter', __FILE__)
module Drone
module Metrics
class Timer
+ attr_reader :name
+
def initialize(name = 'calls')
+ @name = name
@histogram = Histogram.new(Histogram::TYPE_BIASED)
- @meter = Meter.new(name)
clear()
end
def count
@histogram.count
end
- [:fifteen_minutes_rate, :five_minutes_rate, :mean_rate, :one_minute_rate].each do |attr_name|
- define_method(attr_name) do
- @meter.send(attr_name)
- end
- end
-
# may requires a conversion... or not
[:count, :min, :max, :mean, :stdDev, :percentiles, :values].each do |attr_name|
define_method(attr_name) do |*args|
@histogram.send(attr_name, *args)
end
@@ -35,27 +31,19 @@
#
# duration: milliseconds
def update(duration)
if duration >= 0
@histogram.update(duration)
- @meter.mark()
end
end
#
# time and record the duration of the block
def time
started_at = Time.now.to_f
yield()
ensure
update(Time.now.to_f - started_at.to_f)
- end
-
-
-
-
- def name
- @meter.name
end
end
end
end