Sha256: 09bed596dd0f230fb104512515695ac868f8d6fd1dda217d3b9f737ff4b6e661

Contents?: true

Size: 682 Bytes

Versions: 5

Compression:

Stored size: 682 Bytes

Contents

require "instana/rack"

# This instrumentation will insert Rack into Sinatra _and_ Padrino since
# the latter is based on Sinatra

module Instana
  module SinatraPathTemplateExtractor
    def self.extended(base)
      ::Instana.logger.debug "#{base} extended #{self}"
      base.store_path_template
    end
    
    def store_path_template
      after do
        @env["INSTANA_HTTP_PATH_TEMPLATE"] = @env["sinatra.route"]
          .sub("#{@request.request_method} ", '')
      end
    end
  end
end

if defined?(::Sinatra)
  ::Instana.logger.debug "Instrumenting Sinatra"
  ::Sinatra::Base.use ::Instana::Rack
  ::Sinatra::Base.register ::Instana::SinatraPathTemplateExtractor
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
instana-1.193.2 lib/instana/frameworks/sinatra.rb
instana-1.192.1 lib/instana/frameworks/sinatra.rb
instana-1.192.0 lib/instana/frameworks/sinatra.rb
instana-1.13.0 lib/instana/frameworks/sinatra.rb
instana-1.12.0 lib/instana/frameworks/sinatra.rb