Class: TingYun::Instrumentation::Rails::ControllerEvent
- Inherits:
-
Support::Event
- Object
- Support::Event
- TingYun::Instrumentation::Rails::ControllerEvent
- Includes:
- Support::SplitController
- Defined in:
- lib/ting_yun/instrumentation/support/action_controller_subscriber.rb
Constant Summary
Constants included from Support::SplitController
Support::SplitController::HTTP, Support::SplitController::RULE
Instance Attribute Summary collapse
-
#parent ⇒ Object
Returns the value of attribute parent.
-
#queue_start ⇒ Object
readonly
Returns the value of attribute queue_start.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Attributes included from Support::SplitController
Attributes inherited from Support::Event
#children, #end, #frame, #name, #payload, #time, #transaction_id
Instance Method Summary collapse
-
#initialize(name, start, ending, transaction_id, payload, request) ⇒ ControllerEvent
constructor
A new instance of ControllerEvent.
- #method ⇒ Object
- #metric_action ⇒ Object
- #metric_class ⇒ Object
- #metric_name ⇒ Object
- #metric_path ⇒ Object
- #params ⇒ Object
-
#path ⇒ Object
contain the params.
- #to_s ⇒ Object
-
#uri ⇒ Object
expect the params.
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?
Methods inherited from Support::Event
Constructor Details
#initialize(name, start, ending, transaction_id, payload, request) ⇒ ControllerEvent
Returns a new instance of ControllerEvent.
63 64 65 66 67 68 69 70 71 72 73 74 |
# 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.(request.env, self.time) end end |
Instance Attribute Details
#parent ⇒ Object
Returns the value of attribute parent.
60 61 62 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 60 def parent @parent end |
#queue_start ⇒ Object (readonly)
Returns the value of attribute queue_start.
61 62 63 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 61 def queue_start @queue_start end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
61 62 63 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 61 def request @request end |
Instance Method Details
#method ⇒ Object
88 89 90 |
# 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 ⇒ Object
104 105 106 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 104 def metric_action payload[:action] end |
#metric_class ⇒ Object
100 101 102 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 100 def metric_class payload[:controller] end |
#metric_name ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 |
# 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 = "WebAction/Rails/#{namespace}/#{name(uri, request.header, params, request.)}" else if TingYun::Agent.config[:'nbs.auto_action_naming'] @metric_name ||= "WebAction/Rails/#{metric_path}%2F#{metric_action}" else "WebAction/URI/#{uri[1..-1].gsub(/\//,'%2F')}" end end end |
#metric_path ⇒ Object
96 97 98 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 96 def metric_path @controller_class.controller_path end |
#params ⇒ Object
92 93 94 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 92 def params payload[:params] end |
#path ⇒ Object
contain the params
114 115 116 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 114 def path payload[:path] end |
#to_s ⇒ Object
118 119 120 |
# 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 ⇒ Object
expect the params
109 110 111 |
# File 'lib/ting_yun/instrumentation/support/action_controller_subscriber.rb', line 109 def uri path.split('?').first end |