module Mmtrix::Agent::Instrumentation::Sinatra::TransactionNamer
Public Instance Methods
http_verb(request)
click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 35 def http_verb(request) request.request_method if request.respond_to?(:request_method) end
initial_transaction_name(request)
click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 19 def initial_transaction_name(request) transaction_name(::Mmtrix::Agent::UNKNOWN_METRIC, request) end
route_for_sinatra(env)
click to toggle source
For bare Sinatra
, our override on process_route captures the last route into the environment for us to use later on
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 41 def route_for_sinatra(env) env["mmtrix.last_route"] end
route_name_for_padrino(request)
click to toggle source
For Padrino
, the request object has a copy of the matched route on it when we go to evaluating, so we can just retrieve that
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 47 def route_name_for_padrino(request) request.route_obj.original_path rescue nil end
transaction_name(route_text, request)
click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 23 def transaction_name(route_text, request) verb = http_verb(request) route_text = route_text.source if route_text.is_a?(Regexp) name = route_text.gsub(%r{^[/^\\A]*(.*?)[/\$\?\\z]*$}, '\1') name = "#{verb} #{name}" unless verb.nil? name rescue => e ::Mmtrix::Agent.logger.debug("#{e.class} : #{e.message} - Error encountered trying to identify Sinatra transaction name") ::Mmtrix::Agent::UNKNOWN_METRIC end
transaction_name_for_route(env, request)
click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra/transaction_namer.rb, line 12 def transaction_name_for_route(env, request) name = route_for_sinatra(env) name = route_name_for_padrino(request) if name.nil? transaction_name(name, request) unless name.nil? end