Module: TingYun::Instrumentation::Rails3::ActionController

Includes:
Support::SplitController
Defined in:
lib/ting_yun/instrumentation/rails3/action_controller.rb

Constant Summary

Constants included from Support::SplitController

Support::SplitController::HTTP, Support::SplitController::RULE

Instance Attribute Summary

Attributes included from Support::SplitController

#rule, #tingyun_http_verb

Instance Method Summary collapse

Methods included from Support::SplitController

#dot_flattened, #find_rule, #method_match?, #name, #namespace, #params_match?, #raise_error, #rules, #split_header, #split_method, #split_params, #split_url, #url_match?

Instance Method Details

#process_action(*args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/ting_yun/instrumentation/rails3/action_controller.rb', line 32

def process_action(*args)
  params = TingYun::Instrumentation::Support::ParameterFiltering.flattened_filter_request_parameters(request.filtered_parameters)
  perform_action_with_tingyun_trace(:category => :controller,
                                    :name     => self.action_name,
                                    :path     => tingyun_metric_path,
                                    :params   => params,
                                    :class_name => self.class.name) do
    super
  end
end

#tingyun_metric_path(action_name_override = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ting_yun/instrumentation/rails3/action_controller.rb', line 16

def tingyun_metric_path(action_name_override = nil)
  if TingYun::Agent.config[:'naming.rules_enabled'] && find_rule(request.request_method.upcase, request.path, request.env, request.filtered_parameters)
    return "Rails/#{namespace}/#{name(request.path.slice(1..-1), request.env, request.filtered_parameters, request.cookies)}"
  else
    return  "URL/#{self.env["PATH_INFO"][1..-1].gsub(/\//,'%2F')}" unless TingYun::Agent.config[:'nbs.auto_action_naming']

    action = action_name_override || action_name
    if action_name_override || self.class.action_methods.include?(action)
      "Rails/#{self.class.controller_path}%2F#{action}"
    else
      "Rails/#{self.class.controller_path}%2F(other)"
    end
  end
end