Class: TsdMetrics::TimerSample

Inherits:
Object
  • Object
show all
Defined in:
lib/tsd_metrics/timer_sample.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metricStatusSupplier) ⇒ TimerSample

Returns a new instance of TimerSample.



19
20
21
22
23
24
# File 'lib/tsd_metrics/timer_sample.rb', line 19

def initialize(metricStatusSupplier)
  @metricStatusSupplier = metricStatusSupplier
  @startTime = Time.now
  @duration = nil
  @unit = :nanosecond
end

Instance Attribute Details

#durationObject (readonly)

Returns the value of attribute duration.



17
18
19
# File 'lib/tsd_metrics/timer_sample.rb', line 17

def duration
  @duration
end

#unitObject (readonly)

Returns the value of attribute unit.



17
18
19
# File 'lib/tsd_metrics/timer_sample.rb', line 17

def unit
  @unit
end

Instance Method Details

#isRunningObject

Deprecated: Instead use the more ruby-esque #running?



44
45
46
# File 'lib/tsd_metrics/timer_sample.rb', line 44

def isRunning
  return running?
end

#running?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/tsd_metrics/timer_sample.rb', line 48

def running?
  return @startTime != nil
end

#sampleRepresentationObject



61
62
63
64
65
66
67
# File 'lib/tsd_metrics/timer_sample.rb', line 61

def sampleRepresentation
  if @unit == :noUnit
    {value: @duration}
  else
    {value: @duration, unit: @unit}
  end
end

#set(duration, unit) ⇒ Object



56
57
58
59
# File 'lib/tsd_metrics/timer_sample.rb', line 56

def set(duration, unit)
  @duration = duration
  @unit = unit
end

#stopObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tsd_metrics/timer_sample.rb', line 26

def stop
  if @startTime == nil
    TsdMetrics.errorLogger.warn("Stop called on already-stopped Timer sample")
    return
  end
  if @metricStatusSupplier.metricIsClosed
    TsdMetrics.errorLogger.warn("Stop called on Timer after metric has been closed")
    return
  end
  now = Time.now
  diffSecs = now.tv_sec - @startTime.tv_sec
  diffNanoSecs = now.tv_nsec - @startTime.tv_nsec
  diff = ((10**9) * diffSecs) + diffNanoSecs
  @duration = diff
  @startTime = nil
end

#stopped?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/tsd_metrics/timer_sample.rb', line 52

def stopped?
  return ! running?
end