class OneApm::TransactionNamer

Public Class Methods

class_name(traced_obj, options={}) click to toggle source
# File lib/one_apm/transaction/transaction_namer.rb, line 39
def self.class_name(traced_obj, options={})
  return options[:class_name] if options[:class_name]
  if (traced_obj.is_a?(Class) || traced_obj.is_a?(Module))
    traced_obj.name
  else
    traced_obj.class.name
  end
end
name_for(txn, traced_obj, category, options={}) click to toggle source
# File lib/one_apm/transaction/transaction_namer.rb, line 4
def self.name_for(txn, traced_obj, category, options={})
  "#{prefix_for_category(txn, category)}#{path_name(traced_obj, options)}"
end
path_name(traced_obj, options={}) click to toggle source
# File lib/one_apm/transaction/transaction_namer.rb, line 22
def self.path_name(traced_obj, options={})
  return options[:path] if options[:path]

  class_name = class_name(traced_obj, options)
  if options[:name]
    if class_name
      "#{class_name}/#{options[:name]}"
    else
      options[:name]
    end
  elsif traced_obj.respond_to?(:oneapm_metric_path)
    traced_obj.oneapm_metric_path
  else
    class_name
  end
end
prefix_for_category(txn, category = nil) click to toggle source
# File lib/one_apm/transaction/transaction_namer.rb, line 8
def self.prefix_for_category(txn, category = nil)
  category ||= (txn && txn.category)
  case category
  when :controller then ::OneApm::Transaction::OA_WEB_TRANSACTION_PREFIX
  when :task       then ::OneApm::Transaction::OA_TASK_PREFIX
  when :rack       then ::OneApm::Transaction::OA_RACK_PREFIX
  when :uri        then ::OneApm::Transaction::OA_WEB_TRANSACTION_PREFIX
  when :sinatra    then ::OneApm::Transaction::OA_SINATRA_PREFIX
  when :middleware then ::OneApm::Transaction::OA_MIDDLEWARE_PREFIX
  when :grape      then ::OneApm::Transaction::OA_GRAPE_PREFIX
  else "#{category.to_s}/" # for internal use only
  end
end