Sha256: 14ea1a044ecc091582da802dd3476477e552639eccdbe326ad9457b5595ae8c1

Contents?: true

Size: 911 Bytes

Versions: 16

Compression:

Stored size: 911 Bytes

Contents

require 'ddtrace/ext/http'

module Datadog
  module Contrib
    module Sinatra
      # Gets and sets trace information from a Rack Env
      module Env
        ENV_SPAN = 'datadog.sinatra_request_span'.freeze

        module_function

        def datadog_span(env)
          env[ENV_SPAN]
        end

        def set_datadog_span(env, span)
          env[ENV_SPAN] = span
        end

        def request_header_tags(env, headers)
          headers ||= []

          {}.tap do |result|
            headers.each do |header|
              rack_header = header_to_rack_header(header)
              if env.key?(rack_header)
                result[Datadog::Ext::HTTP::RequestHeaders.to_tag(header)] = env[rack_header]
              end
            end
          end
        end

        def header_to_rack_header(name)
          "HTTP_#{name.to_s.upcase.gsub(/[-\s]/, '_')}"
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ddtrace-0.16.1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.15.0.internaltracinfeature1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.16.0 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.2.disableprotocolversion4 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.15.0 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.2.withoutpriorityparsing1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.2 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.15.0.beta1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.0 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.0.rc1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.13.2 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.0.beta2 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.14.0.beta1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.13.1 lib/ddtrace/contrib/sinatra/env.rb
ddtrace-0.13.0 lib/ddtrace/contrib/sinatra/env.rb