Sha256: 3e6145335c84cbfd20f8a846fb5c498c322d7edc0b016a2937786f900110bdaa

Contents?: true

Size: 767 Bytes

Versions: 6

Compression:

Stored size: 767 Bytes

Contents

module NewRelic
  module Agent

    class Thread < ::Thread
      def initialize(label)
        NewRelic::Agent.logger.debug("Creating New Relic thread: #{label}")
        self[:newrelic_label] = label
        super
      end

      def self.bucket_thread(thread, profile_agent_code)
        if thread.key?(:newrelic_label)
          return profile_agent_code ? :agent : :ignore
        elsif !thread[:newrelic_metric_frame].nil?
          thread[:newrelic_metric_frame].request.nil? ? :background : :request
        else
          :other
        end
      end

      def self.scrub_backtrace(thread, profile_agent_code)
        return thread.backtrace if profile_agent_code
        thread.backtrace.select {|t| t !~ /\/newrelic_rpm-\d/ }
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
newrelic_rpm-3.5.4.33 lib/new_relic/agent/thread.rb
newrelic_rpm-3.5.4.31.beta lib/new_relic/agent/thread.rb
newrelic_rpm-3.5.4.29.beta lib/new_relic/agent/thread.rb
ghazel-newrelic_rpm-3.5.4 lib/new_relic/agent/thread.rb
newrelic_rpm-3.5.3.25 lib/new_relic/agent/thread.rb
newrelic_rpm-3.5.3.24 lib/new_relic/agent/thread.rb