class OpticsAgent::RackMiddleware

Attributes

agent[RW]

Public Class Methods

new(app, options={}) click to toggle source
# File lib/optics-agent/rack-middleware.rb, line 14
def initialize(app, options={})
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/optics-agent/rack-middleware.rb, line 18
def call(env)
  agent = self.class.agent
  agent.ensure_reporting_stats!
  agent.debug { "rack-middleware: request started" }

  # Attach so field instrumenters can access
  env[:optics_agent] = QueryContext.new(agent, env)

  result = @app.call(env)

  agent.debug { "rack-middleware: request finished" }
  query = env[:optics_agent].request_finished!

  result
end