Class: Metriks::Timer

Inherits:
Object
  • Object
show all
Defined in:
lib/metriks/timer.rb

Direct Known Subclasses

UtilizationTimer

Defined Under Namespace

Classes: Context

Instance Method Summary collapse

Constructor Details

#initialize(histogram = Metriks::Histogram.new_exponentially_decaying) ⇒ Timer

Returns a new instance of Timer.



25
26
27
28
# File 'lib/metriks/timer.rb', line 25

def initialize(histogram = Metriks::Histogram.new_exponentially_decaying)
  @meter     = Metriks::Meter.new
  @histogram = histogram
end

Instance Method Details

#clearObject



30
31
32
33
# File 'lib/metriks/timer.rb', line 30

def clear
  @meter.clear
  @histogram.clear
end

#countObject



61
62
63
# File 'lib/metriks/timer.rb', line 61

def count
  @histogram.count
end

#fifteen_minute_rateObject



77
78
79
# File 'lib/metriks/timer.rb', line 77

def fifteen_minute_rate
  @meter.fifteen_minute_rate
end

#five_minute_rateObject



73
74
75
# File 'lib/metriks/timer.rb', line 73

def five_minute_rate
  @meter.five_minute_rate
end

#maxObject



89
90
91
# File 'lib/metriks/timer.rb', line 89

def max
  @histogram.max
end

#meanObject



93
94
95
# File 'lib/metriks/timer.rb', line 93

def mean
  @histogram.mean
end

#mean_rateObject



81
82
83
# File 'lib/metriks/timer.rb', line 81

def mean_rate
  @meter.mean_rate
end

#minObject



85
86
87
# File 'lib/metriks/timer.rb', line 85

def min
  @histogram.min
end

#one_minute_rateObject



69
70
71
# File 'lib/metriks/timer.rb', line 69

def one_minute_rate
  @meter.one_minute_rate
end

#snapshotObject



57
58
59
# File 'lib/metriks/timer.rb', line 57

def snapshot
  @histogram.snapshot
end

#stddevObject



97
98
99
# File 'lib/metriks/timer.rb', line 97

def stddev
  @histogram.stddev
end

#stopObject



101
102
103
# File 'lib/metriks/timer.rb', line 101

def stop
  @meter.stop
end

#sumObject



65
66
67
# File 'lib/metriks/timer.rb', line 65

def sum
  @histogram.sum
end

#time(callable = nil, &block) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/metriks/timer.rb', line 42

def time(callable = nil, &block)
  callable ||= block
  context = Context.new(self)

  if callable.nil?
    return context
  end

  begin
    return callable.call
  ensure
    context.stop
  end
end

#update(duration) ⇒ Object



35
36
37
38
39
40
# File 'lib/metriks/timer.rb', line 35

def update(duration)
  if duration >= 0
    @meter.mark
    @histogram.update(duration)
  end
end