Sha256: bb797b91d99068968c2227b79dc84be7c8ca5e0864812035f6179795944b386f

Contents?: true

Size: 1.51 KB

Versions: 30

Compression:

Stored size: 1.51 KB

Contents

module OneApm
  class TransactionNamer

    def self.name_for(txn, traced_obj, category, options={})
      "#{prefix_for_category(txn, category)}#{path_name(traced_obj, options)}"
    end

    def self.prefix_for_category(txn, category = nil)
      category ||= (txn && txn.category)
      case category
      when :controller then ::OneApm::Transaction::WEB_TRANSACTION_PREFIX
      when :task       then ::OneApm::Transaction::TASK_PREFIX
      when :rack       then ::OneApm::Transaction::RACK_PREFIX
      when :uri        then ::OneApm::Transaction::WEB_TRANSACTION_PREFIX
      when :sinatra    then ::OneApm::Transaction::SINATRA_PREFIX
      when :middleware then ::OneApm::Transaction::MIDDLEWARE_PREFIX
      when :grape      then ::OneApm::Transaction::GRAPE_PREFIX
      else "#{category.to_s}/" # for internal use only
      end
    end

    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

    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

  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
oneapm_rpm-1.3.6 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.5 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.4 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.3 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.3.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.2 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.2.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.1.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.0 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.3.0.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.9 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.9.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.8 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.8.rc1 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.7 lib/one_apm/transaction/transaction_namer.rb
oneapm_rpm-1.2.7.rc1 lib/one_apm/transaction/transaction_namer.rb