Class: Rack::Middleware::QueryTracer

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/middleware/query_tracer.rb,
lib/rack/middleware/query_tracer/version.rb

Defined Under Namespace

Classes: ProxyImpl

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Constructor Details

#initialize(app, logger = ::Arproxy.logger) ⇒ QueryTracer

Returns a new instance of QueryTracer.



7
8
9
10
11
12
13
14
15
# File 'lib/rack/middleware/query_tracer.rb', line 7

def initialize(app, logger = ::Arproxy.logger)
  @app = app
  @logger = logger

  ::Arproxy.configure do |config|
    config.adapter = ActiveRecord::Base.connection.adapter_name.downcase # "mysql2" # A DB Apdapter name which is used in your database.yml
    config.use ProxyImpl, @logger
  end
end

Instance Method Details

#call(env) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rack/middleware/query_tracer.rb', line 17

def call(env)
  request = ActionDispatch::Request.new(env)
  @logger.tagged("QueryTracing") do
    ::Arproxy.enable!
    begin
      if request.filtered_path.blank?
        @app.call(env)
      else
        @logger.tagged(request.filtered_path) do
          @app.call(env)
        end
      end
    ensure
      ::Arproxy.disable!
    end
  end
end