Sha256: fd4c88b5ac525e67497cfc6d8ab6cf46547ed75e9bd03642e0e0a9038a377ac3

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require 'new_relic/agent/instrumentation/rack'

class TestingApp

  attr_accessor :response, :headers

  def initialize
    @headers = {'Content-Type' => 'text/html'}
  end

  def call(env)
    request = Rack::Request.new(env)
    params = request.params
    if params['transaction_name']
      opts = {}
      if params['transaction_category']
        opts[:category] = params['transaction_category']
        NewRelic::Agent::TransactionState.tl_get.current_transaction.stubs(:similar_category?).returns true
      end
      NewRelic::Agent.set_transaction_name(params['transaction_name'], opts)
    end
    if params['cross_app_caller']
      NewRelic::Agent::TransactionState.tl_get.is_cross_app_caller = true
    end
    stub_transaction_guid(params['guid']) if params['guid']
    sleep(params['sleep'].to_f) if params['sleep']
    [200, headers, [response]]
  end

end

class TestingBackgroundJob
  FIRST_NAME = "OtherTransaction/Custom/TestingBackgroundJob/first"
  SECOND_NAME = "OtherTransaction/Custom/TestingBackgroundJob/second"

  def first(awhile=nil)
    job(FIRST_NAME, awhile)
  end

  def second(awhile=nil)
    job(SECOND_NAME, awhile)
  end

  def job(name, awhile)
    state = ::NewRelic::Agent::TransactionState.tl_get
    ::NewRelic::Agent::Transaction.wrap(state, name, :other) do
      sleep(awhile) if awhile
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
newrelic_rpm-3.11.2.286 test/multiverse/suites/agent_only/testing_app.rb
newrelic_rpm-3.11.1.284 test/multiverse/suites/agent_only/testing_app.rb
newrelic_rpm-3.11.0.283 test/multiverse/suites/agent_only/testing_app.rb