Class: OneApm::TransactionTimings

Inherits:
Object
  • Object
show all
Defined in:
lib/one_apm/transaction/transaction_timings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_time_in_seconds, start_time_in_seconds, transaction_name) ⇒ TransactionTimings

Returns a new instance of TransactionTimings.



10
11
12
13
14
15
16
# File 'lib/one_apm/transaction/transaction_timings.rb', line 10

def initialize(queue_time_in_seconds, start_time_in_seconds, transaction_name)
  @now = Time.now.to_f
  @queue_time_in_seconds = clamp_to_positive(queue_time_in_seconds.to_f)
  @start_time_in_seconds = clamp_to_positive(start_time_in_seconds.to_f)

  @transaction_name = transaction_name
end

Instance Attribute Details

#queue_time_in_secondsObject (readonly)

Returns the value of attribute queue_time_in_seconds.



6
7
8
# File 'lib/one_apm/transaction/transaction_timings.rb', line 6

def queue_time_in_seconds
  @queue_time_in_seconds
end

#start_time_in_secondsObject (readonly)

Returns the value of attribute start_time_in_seconds.



6
7
8
# File 'lib/one_apm/transaction/transaction_timings.rb', line 6

def start_time_in_seconds
  @start_time_in_seconds
end

#transaction_nameObject (readonly)

Returns the value of attribute transaction_name.



6
7
8
# File 'lib/one_apm/transaction/transaction_timings.rb', line 6

def transaction_name
  @transaction_name
end

Instance Method Details

#app_time_in_millisObject



34
35
36
# File 'lib/one_apm/transaction/transaction_timings.rb', line 34

def app_time_in_millis
  convert_to_milliseconds(app_time_in_seconds)
end

#app_time_in_secondsObject



38
39
40
# File 'lib/one_apm/transaction/transaction_timings.rb', line 38

def app_time_in_seconds
  @now - @start_time_in_seconds
end

#clamp_to_positive(value) ⇒ Object



48
49
50
51
# File 'lib/one_apm/transaction/transaction_timings.rb', line 48

def clamp_to_positive(value)
  return 0.0 if value < 0.0
  value
end

#convert_to_milliseconds(value_in_seconds) ⇒ Object

Helpers



44
45
46
# File 'lib/one_apm/transaction/transaction_timings.rb', line 44

def convert_to_milliseconds(value_in_seconds)
  clamp_to_positive((value_in_seconds.to_f * 1000.0).round)
end

#queue_time_in_millisObject



30
31
32
# File 'lib/one_apm/transaction/transaction_timings.rb', line 30

def queue_time_in_millis
  convert_to_milliseconds(queue_time_in_seconds)
end

#start_time_as_timeObject



22
23
24
# File 'lib/one_apm/transaction/transaction_timings.rb', line 22

def start_time_as_time
  Time.at(@start_time_in_seconds)
end

#start_time_in_millisObject



26
27
28
# File 'lib/one_apm/transaction/transaction_timings.rb', line 26

def start_time_in_millis
  convert_to_milliseconds(@start_time_in_seconds)
end

#transaction_name_or_unknownObject



18
19
20
# File 'lib/one_apm/transaction/transaction_timings.rb', line 18

def transaction_name_or_unknown
  transaction_name || OneApm::Transaction::OA_UNKNOWN_METRIC
end