Sha256: 84394b75f59f82c24dc89eddabf5b0d75f875c96b95a5eff64b8150ce34286f4

Contents?: true

Size: 1.69 KB

Versions: 13

Compression:

Stored size: 1.69 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.

module NewRelic::Agent::Instrumentation
  module Sinatra
    module Chain
      def self.instrument!
        ::Sinatra::Base.class_eval do
          include ::NewRelic::Agent::Instrumentation::Sinatra::Tracer

          def dispatch_with_newrelic
            dispatch_with_tracing { dispatch_without_newrelic }
          end
          alias dispatch_without_newrelic dispatch!
          alias dispatch! dispatch_with_newrelic

          def process_route_with_newrelic(*args, &block)
            process_route_with_tracing(*args) do
              process_route_without_newrelic(*args, &block)
            end
          end
          alias process_route_without_newrelic process_route
          alias process_route process_route_with_newrelic

          def route_eval_with_newrelic(*args, &block)
            route_eval_with_tracing(*args) do
              route_eval_without_newrelic(*args, &block)
            end
          end
          alias route_eval_without_newrelic route_eval
          alias route_eval route_eval_with_newrelic
        end
      end
    end

    module Build
      module Chain
        def self.instrument!
          ::Sinatra::Base.class_eval do
            class << self
              def build_with_newrelic(*args, &block)
                build_with_tracing(*args) do
                  build_without_newrelic(*args, &block)
                end
              end
              alias build_without_newrelic build
              alias build build_with_newrelic
            end
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
newrelic_rpm-8.9.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.8.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.7.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.6.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.5.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.4.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.3.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.2.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.1.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.0.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-7.2.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-7.1.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-7.0.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb