class TingYun::Instrumentation::Rails::ControllerEvent

Attributes

parent[RW]
queue_start[R]
request[R]

Public Class Methods

new(name, start, ending, transaction_id, payload, request) click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 63
def initialize(name, start, ending, transaction_id, payload, request)
  # We have a different initialize parameter[[j]] list, so be explicit
  super(name, start, ending, transaction_id, payload, nil)

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

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

Public Instance Methods

method() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 88
def method
  payload[:params]['_method'].upcase rescue nil ||  payload[:method]
end
metric_action() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 104
def metric_action
  payload[:action]
end
metric_class() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 100
def metric_class
  payload[:controller]
end
metric_name() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 76
def metric_name
  if TingYun::Agent.config[:'naming.rules_enabled'] && find_rule(method, uri, request.header, params)
    @metric_name =  "#{namespace}/#{name(uri, request.header, params, request.cookie)}"
  else
    if TingYun::Agent.config[:'auto_action_naming']
      @metric_name ||= "Rails/#{metric_path}/#{metric_action}"
    else
      "URI/#{uri}"
    end
  end
end
metric_path() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 96
def metric_path
  @controller_class.controller_path
end
params() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 92
def params
  payload[:params]
end
path() click to toggle source

contain the params

# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 114
def path
  payload[:path]
end
to_s() click to toggle source
# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 118
def to_s
  "#<TingYun::Instrumentation::ControllerEvent:#{object_id} name: \"#{name}\" id: #{transaction_id} payload: #{payload}}>"
end
uri() click to toggle source

expect the params

# File lib/ting_yun/instrumentation/support/action_controller_subscriber.rb, line 109
def uri
  path.split('?').first
end