Class: OneApm::Agent::Instrumentation::ControllerEvent

Inherits:
Event
  • Object
show all
Defined in:
lib/one_apm/inst/rails4/action_controller_subscriber.rb

Instance Attribute Summary collapse

Attributes inherited from Event

#children, #end, #frame, #name, #payload, #time, #transaction_id

Instance Method Summary collapse

Methods inherited from Event

#<<, #duration, #parent_of?

Constructor Details

#initialize(name, start, ending, transaction_id, payload, request) ⇒ ControllerEvent

Returns a new instance of ControllerEvent.



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 71

def initialize(name, start, ending, transaction_id, payload, request)
  # We have a different initialize parameter list, so be explicit
  super(name, start, ending, transaction_id, payload)

  @request = request
  @controller_class = payload[:controller].split('::') \
    .inject(Object){|m,o| m.const_get(o)}

  if request && request.respond_to?(:env)
    @queue_start = QueueTime.parse_frontend_timestamp(request.env, self.time)
  end
end

Instance Attribute Details

#parentObject

Returns the value of attribute parent.



68
69
70
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 68

def parent
  @parent
end

#queue_startObject (readonly)

Returns the value of attribute queue_start.



69
70
71
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 69

def queue_start
  @queue_start
end

#requestObject (readonly)

Returns the value of attribute request.



69
70
71
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 69

def request
  @request
end

Instance Method Details

#_is_filtered?(key) ⇒ Boolean

Returns:

  • (Boolean)


108
109
110
111
112
113
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 108

def _is_filtered?(key)
  OneApm::Agent::Instrumentation::IgnoreActions.is_filtered?(
    key,
    @controller_class,
    metric_action)
end

#apdex_ignored?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 100

def apdex_ignored?
  _is_filtered?(TransactionBase::OA_IGNORE_APDEX_KEY)
end

#enduser_ignored?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 104

def enduser_ignored?
  _is_filtered?(TransactionBase::OA_IGNORE_ENDUSER_KEY)
end

#ignored?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 96

def ignored?
  _is_filtered?(TransactionBase::OA_DO_NOT_TRACE_KEY)
end

#metric_actionObject



92
93
94
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 92

def metric_action
  payload[:action]
end

#metric_nameObject



84
85
86
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 84

def metric_name
  @metric_name || "Controller/#{metric_path}/#{metric_action}"
end

#metric_pathObject



88
89
90
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 88

def metric_path
  @controller_class.controller_path
end

#to_sObject



115
116
117
# File 'lib/one_apm/inst/rails4/action_controller_subscriber.rb', line 115

def to_s
  "#<OneApm::Agent::Instrumentation::ControllerEvent:#{object_id} name: \"#{name}\" id: #{transaction_id} payload: #{payload}}>"
end