Sha256: eda4a3860e368fa6b2227f3edf69e48477741a1305331637a364b46d3847e495

Contents?: true

Size: 718 Bytes

Versions: 9

Compression:

Stored size: 718 Bytes

Contents

# Copyright (c) 2012 by Tracelytics, Inc.
# All rights reserved.

module Oboe
  class Middleware
    def initialize(app)
      @app = app
    end

    def call(env)
      header = env['HTTP_X_TRACE']
      result, header = Oboe::API.start_trace('rack', header) do
        env['HTTP_X_TRACE'] = Oboe::Context.toString()
        @app.call(env)
      end
      result
    rescue Exception => e
      header = e.instance_variable_get(:@xtrace)
      raise
    ensure
      env['HTTP_X_TRACE'] = header if header
    end
  end
end

if false and defined?(::Rails.configuration.middleware)
  puts "[oboe/loading] Instrumenting rack" if Oboe::Config[:verbose]
  ::Rails.configuration.middleware.insert 0, Oboe::Middleware
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
oboe-1.3.8 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.0 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.1 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.2 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.3 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.4 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.5 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.6 lib/oboe/frameworks/rails/inst/rack.rb
oboe-1.3.7 lib/oboe/frameworks/rails/inst/rack.rb