class ScoutApm::AppServerLoad
Attributes
Public Class Methods
Source
# File lib/scout_apm/app_server_load.rb, line 6 def initialize(context) @context = context @logger = context.logger end
Public Instance Methods
Source
# File lib/scout_apm/app_server_load.rb, line 31 def data { :language => 'ruby', :language_version => RUBY_VERSION, :ruby_version => RUBY_VERSION, # Deprecated. :framework => to_s_safe(environment.framework_integration.human_name), :framework_version => to_s_safe(environment.framework_integration.version), :server_time => to_s_safe(Time.now), :environment => to_s_safe(environment.framework_integration.env), :app_server => to_s_safe(environment.app_server), :hostname => to_s_safe(environment.hostname), :database_engine => to_s_safe(environment.database_engine), # Detected :database_adapter => to_s_safe(environment.raw_database_adapter), # Raw :application_name => to_s_safe(environment.application_name), :libraries => ScoutApm::Utils::InstalledGems.new(context).run, :paas => to_s_safe(environment.platform_integration.name), :git_sha => to_s_safe(environment.git_revision.sha) } ensure # Sometimes :database_engine and :database_adapter can cause a reference to an AR connection. # Make sure we release all AR connections held by this thread. ActiveRecord::Base.connection_handler.clear_active_connections! if Utils::KlassHelper.defined?("ActiveRecord::Base") end
Source
# File lib/scout_apm/app_server_load.rb, line 67 def environment context.environment end
Source
# File lib/scout_apm/app_server_load.rb, line 11 def run @thread = Thread.new do begin logger.info "Sending Application Startup Info - App Server: #{data[:app_server]}, Framework: #{data[:framework]}, Framework Version: #{data[:framework_version]}, Database Engine: #{data[:database_engine]}" logger.debug("Full Application Startup Info: #{data.inspect}") payload = ScoutApm::Serializers::AppServerLoadSerializer.serialize(data) reporter = Reporter.new(context, :app_server_load) reporter.report(payload) logger.debug("Finished sending Startup Info") rescue => e logger.info("Failed Sending Application Startup Info - #{e.message}") logger.debug(e.backtrace.join("\t\n")) end end rescue => e logger.debug("Failed Startup Info - #{e.message} \n\t#{e.backtrace.join("\t\n")}") end
Source
# File lib/scout_apm/app_server_load.rb, line 59 def to_s_safe(obj) if obj.respond_to?(:to_s) obj.to_s else 'to_s error' end end
Calls ‘.to_s` on the object passed in. Returns literal string ’to_s error’ if the object does not respond to .to_s