Class: TingYun::Agent::TransactionTimings
- Inherits:
-
Object
- Object
- TingYun::Agent::TransactionTimings
- Extended by:
- Forwardable
- Defined in:
- lib/ting_yun/agent/transaction/transaction_timings.rb
Defined Under Namespace
Classes: Timings
Instance Attribute Summary collapse
-
#queue_time_in_seconds ⇒ Object
readonly
Returns the value of attribute queue_time_in_seconds.
-
#start_time_in_seconds ⇒ Object
readonly
Returns the value of attribute start_time_in_seconds.
-
#timings ⇒ Object
readonly
Returns the value of attribute timings.
Instance Method Summary collapse
- #app_execute_duration ⇒ Object
- #app_time_in_millis ⇒ Object
- #app_time_in_seconds ⇒ Object
- #clamp_to_positive(value) ⇒ Object
- #convert_to_milliseconds(value_in_seconds) ⇒ Object
-
#initialize(queue_time_in_seconds, start_time_in_seconds) ⇒ TransactionTimings
constructor
A new instance of TransactionTimings.
- #queue_time_in_millis ⇒ Object
-
#slow_action_tracer? ⇒ Boolean
Helpers.
- #start_time_as_time ⇒ Object
- #start_time_in_millis ⇒ Object
Constructor Details
#initialize(queue_time_in_seconds, start_time_in_seconds) ⇒ TransactionTimings
Returns a new instance of TransactionTimings.
11 12 13 14 15 16 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 11 def initialize(queue_time_in_seconds, start_time_in_seconds) @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) @timings = TingYun::Agent::TransactionTimings::Timings.new(0.0, 0.0, 0.0, 0.0, 0.0) end |
Instance Attribute Details
#queue_time_in_seconds ⇒ Object (readonly)
Returns the value of attribute queue_time_in_seconds.
19 20 21 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 19 def queue_time_in_seconds @queue_time_in_seconds end |
#start_time_in_seconds ⇒ Object (readonly)
Returns the value of attribute start_time_in_seconds.
19 20 21 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 19 def start_time_in_seconds @start_time_in_seconds end |
#timings ⇒ Object (readonly)
Returns the value of attribute timings.
19 20 21 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 19 def timings @timings end |
Instance Method Details
#app_execute_duration ⇒ Object
50 51 52 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 50 def app_execute_duration app_time_in_millis - queue_time_in_millis - sql_duration - external_duration - rds_duration - mon_duration - mc_duration end |
#app_time_in_millis ⇒ Object
42 43 44 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 42 def app_time_in_millis convert_to_milliseconds(app_time_in_seconds) end |
#app_time_in_seconds ⇒ Object
46 47 48 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 46 def app_time_in_seconds Time.now.to_f - @start_time_in_seconds end |
#clamp_to_positive(value) ⇒ Object
64 65 66 67 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 64 def clamp_to_positive(value) return 0.0 if value < 0.0 value end |
#convert_to_milliseconds(value_in_seconds) ⇒ Object
60 61 62 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 60 def convert_to_milliseconds(value_in_seconds) clamp_to_positive((value_in_seconds.to_f * 1000.0).round) end |
#queue_time_in_millis ⇒ Object
38 39 40 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 38 def queue_time_in_millis convert_to_milliseconds(queue_time_in_seconds) end |
#slow_action_tracer? ⇒ Boolean
Helpers
56 57 58 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 56 def slow_action_tracer? return app_time_in_millis > TingYun::Agent.config[:'nbs.action_tracer.action_threshold'] end |
#start_time_as_time ⇒ Object
30 31 32 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 30 def start_time_as_time Time.at(@start_time_in_seconds) end |
#start_time_in_millis ⇒ Object
34 35 36 |
# File 'lib/ting_yun/agent/transaction/transaction_timings.rb', line 34 def start_time_in_millis convert_to_milliseconds(@start_time_in_seconds) end |