Class: NewRelic::Agent::TransactionTimings

Inherits:
Object
  • Object
show all
Defined in:
lib/new_relic/agent/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.



9
10
11
12
13
14
15
# File 'lib/new_relic/agent/transaction_timings.rb', line 9

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.



17
18
19
# File 'lib/new_relic/agent/transaction_timings.rb', line 17

def queue_time_in_seconds
  @queue_time_in_seconds
end

#start_time_in_secondsObject (readonly)

Returns the value of attribute start_time_in_seconds.



17
18
19
# File 'lib/new_relic/agent/transaction_timings.rb', line 17

def start_time_in_seconds
  @start_time_in_seconds
end

#transaction_nameObject (readonly)

Returns the value of attribute transaction_name.



17
18
19
# File 'lib/new_relic/agent/transaction_timings.rb', line 17

def transaction_name
  @transaction_name
end

Instance Method Details

#app_time_in_millisObject



32
33
34
# File 'lib/new_relic/agent/transaction_timings.rb', line 32

def app_time_in_millis
  convert_to_milliseconds(app_time_in_seconds)
end

#app_time_in_secondsObject



36
37
38
# File 'lib/new_relic/agent/transaction_timings.rb', line 36

def app_time_in_seconds
  @now - @start_time_in_seconds
end

#clamp_to_positive(value) ⇒ Object



46
47
48
49
# File 'lib/new_relic/agent/transaction_timings.rb', line 46

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

#convert_to_milliseconds(value_in_seconds) ⇒ Object

Helpers



42
43
44
# File 'lib/new_relic/agent/transaction_timings.rb', line 42

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

#queue_time_in_millisObject



28
29
30
# File 'lib/new_relic/agent/transaction_timings.rb', line 28

def queue_time_in_millis
  convert_to_milliseconds(queue_time_in_seconds)
end

#start_time_as_timeObject



20
21
22
# File 'lib/new_relic/agent/transaction_timings.rb', line 20

def start_time_as_time
  Time.at(@start_time_in_seconds)
end

#start_time_in_millisObject



24
25
26
# File 'lib/new_relic/agent/transaction_timings.rb', line 24

def start_time_in_millis
  convert_to_milliseconds(@start_time_in_seconds)
end