Class: TingYun::Instrumentation::Rails::RenderEvent

Inherits:
Support::Event show all
Defined in:
lib/ting_yun/instrumentation/support/action_view_subscriber.rb

Instance Attribute Summary

Attributes inherited from Support::Event

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

Instance Method Summary collapse

Methods inherited from Support::Event

#<<, #duration, #initialize, #parent_of?

Constructor Details

This class inherits a constructor from TingYun::Instrumentation::Support::Event

Instance Method Details

#metric_action(name) ⇒ Object



83
84
85
86
87
88
89
90
91
92
# File 'lib/ting_yun/instrumentation/support/action_view_subscriber.rb', line 83

def metric_action(name)
  case name
    when /render_template.action_view$/ then
      'Rendering'
    when 'render_partial.action_view' then
      'Partial'
    when 'render_collection.action_view' then
      'Partial'
  end
end

#metric_nameObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/ting_yun/instrumentation/support/action_view_subscriber.rb', line 56

def metric_name
  if parent && (payload[:virtual_path] ||
      (parent.payload[:identifier] =~ /template$/))
    return parent.metric_name
  elsif payload.key?(:virtual_path)
    identifier = payload[:virtual_path]
  else
    identifier = payload[:identifier]
  end

  # memoize
  @metric_name ||= "View/#{metric_path(identifier)}/#{metric_action(name)}"
  @metric_name
end

#metric_path(identifier) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
# File 'lib/ting_yun/instrumentation/support/action_view_subscriber.rb', line 71

def metric_path(identifier)
  if identifier == nil
    'file'
  elsif identifier =~ /template$/
    identifier
  elsif (parts = identifier.split('/')).size > 1
    parts[-2..-1].join('/')
  else
    ::TingYun::Agent::UNKNOWN_METRIC
  end
end

#recordable?Boolean

Returns:

  • (Boolean)


50
51
52
53
54
# File 'lib/ting_yun/instrumentation/support/action_view_subscriber.rb', line 50

def recordable?
  name[0] == '!' ||
      metric_name == 'View/text template/Rendering' ||
      metric_name == "View/#{::TingYun::Agent::UNKNOWN_METRIC}/Partial"
end