Class: NewRelic::Rack::AgentMiddleware
- Inherits:
-
Object
- Object
- NewRelic::Rack::AgentMiddleware
- Defined in:
- lib/new_relic/rack/agent_middleware.rb
Direct Known Subclasses
Constant Summary
Constants included from Agent::Instrumentation::MiddlewareTracing
Agent::Instrumentation::MiddlewareTracing::CONTENT_LENGTH, Agent::Instrumentation::MiddlewareTracing::CONTENT_TYPE, Agent::Instrumentation::MiddlewareTracing::TXN_STARTED_KEY
Instance Attribute Summary collapse
- #category ⇒ Object readonly
- #target ⇒ Object readonly
- #transaction_options ⇒ Object readonly
Instance Method Summary collapse
- #build_transaction_name ⇒ Object
-
#capture_http_response_code(state, result) ⇒ Object
If middleware tracing is disabled, we’ll still inject our agent-specific middlewares, and still trace those, but we don’t want to capture HTTP response codes, since middleware that’s outside of ours might change the response code before it goes back to the client.
- #capture_response_content_type(state, result) ⇒ Object
-
#initialize(app, options = {}) ⇒ AgentMiddleware
constructor
A new instance of AgentMiddleware.
Methods included from Agent::Instrumentation::MiddlewareTracing
#_nr_has_middleware_tracing, #build_transaction_options, #call, #capture_response_attributes, #capture_response_content_length, #events, #merge_first_middleware_options, #note_transaction_started
Constructor Details
#initialize(app, options = {}) ⇒ AgentMiddleware
Returns a new instance of AgentMiddleware.
16 17 18 19 20 21 22 23 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 16 def initialize(app, = {}) @app = app @category = :middleware @target = self @transaction_options = { :transaction_name => build_transaction_name } end |
Instance Attribute Details
#category ⇒ Object (readonly)
14 15 16 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 14 def category @category end |
#target ⇒ Object (readonly)
14 15 16 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 14 def target @target end |
#transaction_options ⇒ Object (readonly)
14 15 16 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 14 def @transaction_options end |
Instance Method Details
#build_transaction_name ⇒ Object
25 26 27 28 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 25 def build_transaction_name prefix = ::NewRelic::Agent::Instrumentation::ControllerInstrumentation::TransactionNamer.prefix_for_category(nil, @category) "#{prefix}#{self.class.name}/call" end |
#capture_http_response_code(state, result) ⇒ Object
If middleware tracing is disabled, we’ll still inject our agent-specific middlewares, and still trace those, but we don’t want to capture HTTP response codes, since middleware that’s outside of ours might change the response code before it goes back to the client.
34 35 36 37 38 |
# File 'lib/new_relic/rack/agent_middleware.rb', line 34 def capture_http_response_code(state, result) return if NewRelic::Agent.config[:disable_middleware_instrumentation] super end |