class Labkit::Middleware::Rack
This is a rack middleware to be inserted in GitLab-rails It makes sure that there's always a root context containing the correlation id. Since this context always get's cleaned up by this middleware, we can be sure that any nested contexts will also be cleaned up.
Public Class Methods
new(app)
click to toggle source
# File lib/labkit/middleware/rack.rb, line 13 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/labkit/middleware/rack.rb, line 17 def call(env) Labkit::Context.with_context(Labkit::Context::CORRELATION_ID_KEY => correlation_id(env)) do @app.call(env) end end
Private Instance Methods
correlation_id(env)
click to toggle source
# File lib/labkit/middleware/rack.rb, line 25 def correlation_id(env) request(env).request_id end
request(env)
click to toggle source
# File lib/labkit/middleware/rack.rb, line 29 def request(env) ActionDispatch::Request.new(env) end