Methods
Included Modules
Classes and Modules
Module PhusionPassenger::Rails3Extensions::AnalyticsLogging::ACExtensionModule PhusionPassenger::Rails3Extensions::AnalyticsLogging::ASBenchmarkableExtension
Class PhusionPassenger::Rails3Extensions::AnalyticsLogging::ExceptionLogger
Public Class methods
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 41 41: def self.install!(options) 42: analytics_logger = options["analytics_logger"] 43: return false if !analytics_logger || !options["analytics"] 44: 45: # If the Ruby interpreter supports GC statistics then turn it on 46: # so that the info can be logged. 47: GC.enable_stats if GC.respond_to?(:enable_stats) 48: 49: subscriber = self.new 50: AnalyticsLogging.attach_to(:action_controller, subscriber) 51: AnalyticsLogging.attach_to(:active_record, subscriber) 52: if defined?(ActiveSupport::Cache::Store) 53: ActiveSupport::Cache::Store.instrument = true 54: AnalyticsLogging.attach_to(:active_support, subscriber) 55: end 56: 57: if defined?(ActionDispatch::ShowExceptions) 58: Rails::Application.middleware.insert_after( 59: ActionDispatch::ShowExceptions, 60: ExceptionLogger, analytics_logger) 61: end 62: 63: if defined?(ActionController::Base) 64: ActionController::Base.class_eval do 65: include ACExtension 66: end 67: end 68: 69: if defined?(ActiveSupport::Benchmarkable) 70: ActiveSupport::Benchmarkable.class_eval do 71: include ASBenchmarkableExtension 72: alias_method_chain :benchmark, :passenger 73: end 74: end 75: 76: return true 77: end
Public Instance methods
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 103 103: def cache_fetch_hit(event) 104: PhusionPassenger.log_cache_hit(nil, event.payload[:key]) 105: end
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 107 107: def cache_generate(event) 108: PhusionPassenger.log_cache_miss(nil, event.payload[:key], 109: event.duration * 1000) 110: end
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 95 95: def cache_read(event) 96: if event.payload[:hit] 97: PhusionPassenger.log_cache_hit(nil, event.payload[:key]) 98: else 99: PhusionPassenger.log_cache_miss(nil, event.payload[:key]) 100: end 101: end
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 79 79: def process_action(event) 80: log = Thread.current[PASSENGER_ANALYTICS_WEB_LOG] 81: log.message("View rendering time: #{(event.payload[:view_runtime] * 1000).to_i}") if log 82: end
[ show source ]
# File lib/phusion_passenger/rails3_extensions/init.rb, line 84 84: def sql(event) 85: log = Thread.current[PASSENGER_ANALYTICS_WEB_LOG] 86: if log 87: name = event.payload[:name] 88: sql = event.payload[:sql] 89: digest = Digest::MD5.hexdigest("#{name}\0#{sql}\0#{rand}") 90: log.measured_time_points("DB BENCHMARK: #{digest}", 91: event.time, event.end, "#{name}\n#{sql}") 92: end 93: end