Sha256: 892e1bca476edc2ec2b8352c5c2067d6c37ea80c6c63b3e374ceb57a840c24e0

Contents?: true

Size: 1.68 KB

Versions: 7

Compression:

Stored size: 1.68 KB

Contents

# Copyright (c) 2016 SolarWinds, LLC.
# All rights reserved.

if defined?(ActionView::Base) && AppOpticsAPM::Config[:action_view][:enabled]

  if Rails::VERSION::MAJOR >= 4

    AppOpticsAPM.logger.info '[appoptics_apm/loading] Instrumenting actionview' if AppOpticsAPM::Config[:verbose]

    ActionView::PartialRenderer.class_eval do
      alias :render_partial_without_appoptics :render_partial
      def render_partial(*args)
        entry_kvs = {}
        begin
          entry_kvs[:Partial] = AppOpticsAPM::Util.prettify(@options[:partial]) if @options.is_a?(Hash)
        rescue => e
          AppOpticsAPM.logger.debug "[appoptics_apm/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if AppOpticsAPM::Config[:verbose]
        end

        AppOpticsAPM::SDK.trace('partial', entry_kvs) do
          entry_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:action_view][:collect_backtraces]
          render_partial_without_appoptics(*args)
        end
      end

      alias :render_collection_without_appoptics :render_collection
      def render_collection(*args)
        entry_kvs = {}
        begin
          entry_kvs[:Partial] = AppOpticsAPM::Util.prettify(@path)
        rescue => e
          AppOpticsAPM.logger.debug "[appoptics_apm/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if AppOpticsAPM::Config[:verbose]
        end

        AppOpticsAPM::SDK.trace('collection', entry_kvs) do
          entry_kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:action_view][:collect_backtraces]
          render_collection_without_appoptics(*args)
        end
      end

    end
  end
end

# vim:set expandtab:tabstop=2

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
appoptics_apm-4.12.1 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.12.0 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.11.2 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.11.1 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.11.0 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.10.1 lib/appoptics_apm/frameworks/rails/inst/action_view.rb
appoptics_apm-4.10.0 lib/appoptics_apm/frameworks/rails/inst/action_view.rb