Sha256: 3cb7137b133f503e60bd439b52b9efc66112e3a6f1b43bb235767b9a12241f59

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require 'new_relic/agent'
module Funktor
  module Middleware
    class NewRelic
      include ::NewRelic::Agent::Instrumentation::ControllerInstrumentation

      def call(job)
        ::NewRelic::Agent.manual_start(:sync_startup => true)
        trace_args = {
          :name => 'perform',
          :class_name => job.worker_class_name_for_metrics,
          :category => 'OtherTransaction/Funktor'
        }
        perform_action_with_newrelic_trace(trace_args) do
          ::NewRelic::Agent::Transaction.merge_untrusted_agent_attributes(job.worker_params,
                                                                        :'worker.funktor.params',
                                                                        ::NewRelic::Agent::AttributeFilter::DST_NONE)
          yield
        end
        ::NewRelic::Agent.shutdown
      end
    end
  end

  def self.new_relic!
    Funktor.configure_work_queue_handler do |config|
      config.work_queue_handler_middleware do |chain|
        chain.add Funktor::Middleware::NewRelic
      end
    end
  end
end




Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
funktor-0.7.29 lib/funktor/middleware/new_relic.rb