Sha256: ab0bd29deae4045f11e2bf370f784a9c16e6c5e1cddc366e52d3fc4303fc9a42

Contents?: true

Size: 887 Bytes

Versions: 19

Compression:

Stored size: 887 Bytes

Contents

# frozen_string_literal: true

module Mnemosyne
  module Middleware
    class Acfs
      def initialize(app, *)
        @app = app
      end

      def call(request)
        trace = ::Mnemosyne::Instrumenter.current_trace

        if trace
          span = ::Mnemosyne::Span.new('external.http.acfs',
            meta: extract_meta(request))

          span.start!

          request.headers['X-Mnemosyne-Transaction'] = trace.transaction
          request.headers['X-Mnemosyne-Origin'] = span.uuid

          request.on_complete do |response, nxt|
            span.finish!
            trace << span

            nxt.call(response)
          end
        end

        @app.call(request)
      end

      private

      def extract_meta(request)
        {
          url: request.url,
          method: request.method,
          params: request.params
        }
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
mnemosyne-ruby-2.1.2 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-2.1.1 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-2.0.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.17.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.16.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.15.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.14.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.13.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.12.1 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.12.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.11.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.10.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.10.0.beta1 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.9.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.8.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.7.1 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.7.0 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.6.2 lib/mnemosyne/middleware/acfs.rb
mnemosyne-ruby-1.6.1 lib/mnemosyne/middleware/acfs.rb