Sha256: fb0eb22efdd821252622dbef4da1728fa529fff003ba358a846676176c388d89

Contents?: true

Size: 881 Bytes

Versions: 15

Compression:

Stored size: 881 Bytes

Contents

module Pliny::Middleware
  class Instruments
    def initialize(app)
      @app = app
    end

    def call(env)
      start = Time.now

      request_ids = env["REQUEST_IDS"] ? env["REQUEST_IDS"].join(",") : nil

      data = {
        request_id:      request_ids,
        instrumentation: true,
        method:          env["REQUEST_METHOD"],
        path:            env["PATH_INFO"]
      }

      Pliny.log(data.merge(at: "start"))

      status, headers, response = @app.call(env)

      if route = env["sinatra.route"]
        data.merge!(route_signature: route.split(" ").last)
      end

      elapsed = (Time.now - start).to_f
      Pliny.log(data.merge(
        at:              "finish",
        status:          status,
        length:          headers["Content-Length"],
        elapsed:         elapsed
      ))

      [status, headers, response]
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
pliny-0.18.0 lib/pliny/middleware/instruments.rb
pliny-0.17.1 lib/pliny/middleware/instruments.rb
pliny-0.17.0 lib/pliny/middleware/instruments.rb
pliny-0.16.3 lib/pliny/middleware/instruments.rb
pliny-0.16.2 lib/pliny/middleware/instruments.rb
pliny-0.16.1 lib/pliny/middleware/instruments.rb
pliny-0.16.0 lib/pliny/middleware/instruments.rb
pliny-0.15.1 lib/pliny/middleware/instruments.rb
pliny-0.15.0 lib/pliny/middleware/instruments.rb
pliny-0.14.2 lib/pliny/middleware/instruments.rb
pliny-0.14.1 lib/pliny/middleware/instruments.rb
pliny-0.14.0 lib/pliny/middleware/instruments.rb
pliny-0.13.1 lib/pliny/middleware/instruments.rb
pliny-0.13.0 lib/pliny/middleware/instruments.rb
pliny-0.12.0 lib/pliny/middleware/instruments.rb