Class: NewRelic::Agent::Tracer::State
- Inherits:
-
Object
- Object
- NewRelic::Agent::Tracer::State
- Defined in:
- lib/new_relic/agent/tracer.rb
Overview
This is THE location to store thread local information during a transaction Need a new piece of data? Add a method here, NOT a new thread local variable.
Instance Attribute Summary collapse
-
#current_transaction ⇒ Object
Current transaction stack.
-
#record_sql ⇒ Object
TT's and SQL.
-
#sql_sampler_transaction_data ⇒ Object
Sql Sampler Transaction Data.
-
#untraced ⇒ Object
Execution tracing on current thread.
Instance Method Summary collapse
-
#initialize ⇒ State
constructor
A new instance of State.
- #is_execution_traced? ⇒ Boolean (also: #tracing_enabled?)
- #is_sql_recorded? ⇒ Boolean
- #pop_traced ⇒ Object
- #push_traced(should_trace) ⇒ Object
-
#reset(transaction = nil) ⇒ Object
This starts the timer for the transaction.
Constructor Details
#initialize ⇒ State
Returns a new instance of State.
464 465 466 467 468 |
# File 'lib/new_relic/agent/tracer.rb', line 464 def initialize @untraced = [] @current_transaction = nil @record_sql = nil end |
Instance Attribute Details
#current_transaction ⇒ Object
Current transaction stack
481 482 483 |
# File 'lib/new_relic/agent/tracer.rb', line 481 def current_transaction @current_transaction end |
#record_sql ⇒ Object
TT's and SQL
501 502 503 |
# File 'lib/new_relic/agent/tracer.rb', line 501 def record_sql @record_sql end |
#sql_sampler_transaction_data ⇒ Object
Sql Sampler Transaction Data
508 509 510 |
# File 'lib/new_relic/agent/tracer.rb', line 508 def sql_sampler_transaction_data @sql_sampler_transaction_data end |
#untraced ⇒ Object
Execution tracing on current thread
484 485 486 |
# File 'lib/new_relic/agent/tracer.rb', line 484 def untraced @untraced end |
Instance Method Details
#is_execution_traced? ⇒ Boolean Also known as: tracing_enabled?
494 495 496 |
# File 'lib/new_relic/agent/tracer.rb', line 494 def is_execution_traced? @untraced.nil? || @untraced.last != false end |
#is_sql_recorded? ⇒ Boolean
503 504 505 |
# File 'lib/new_relic/agent/tracer.rb', line 503 def is_sql_recorded? @record_sql != false end |
#pop_traced ⇒ Object
490 491 492 |
# File 'lib/new_relic/agent/tracer.rb', line 490 def pop_traced @untraced&.pop end |
#push_traced(should_trace) ⇒ Object
486 487 488 |
# File 'lib/new_relic/agent/tracer.rb', line 486 def push_traced(should_trace) @untraced << should_trace end |
#reset(transaction = nil) ⇒ Object
This starts the timer for the transaction.
471 472 473 474 475 476 477 478 |
# File 'lib/new_relic/agent/tracer.rb', line 471 def reset(transaction = nil) # We purposefully don't reset @untraced or @record_sql # since those are managed by NewRelic::Agent.disable_* calls explicitly # and (more importantly) outside the scope of a transaction @current_transaction = transaction @sql_sampler_transaction_data = nil end |