class PhusionPassenger::ActiveSupport3Extensions::UnionStationExtension
Public Class Methods
install!(options, user_options)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 41 def self.install!(options, user_options) union_station_core = options["union_station_core"] app_group_name = options["app_group_name"] return false if !union_station_core || !options["analytics"] # If the Ruby interpreter supports GC statistics then turn it on # so that the info can be logged. GC.enable_stats if GC.respond_to?(:enable_stats) subscriber = self.new(user_options) UnionStationExtension.attach_to(:action_controller, subscriber) UnionStationExtension.attach_to(:active_record, subscriber) if defined?(ActiveSupport::Cache::Store) ActiveSupport::Cache::Store.instrument = true UnionStationExtension.attach_to(:active_support, subscriber) end PhusionPassenger.on_event(:starting_request_handler_thread) do if defined?(ActiveSupport::Cache::Store) # This flag is thread-local. ActiveSupport::Cache::Store.instrument = true end end if defined?(ActionDispatch::DebugExceptions) exceptions_middleware = ActionDispatch::DebugExceptions elsif defined?(ActionDispatch::ShowExceptions) exceptions_middleware = ActionDispatch::ShowExceptions end if exceptions_middleware if defined?(Rails) Rails.application.middleware.insert_after( exceptions_middleware, ExceptionLogger, union_station_core, app_group_name) end end if defined?(ActionController::Base) ActionController::Base.class_eval do include ACExtension end end if defined?(ActiveSupport::Benchmarkable) ActiveSupport::Benchmarkable.class_eval do include ASBenchmarkableExtension alias_method_chain :benchmark, :passenger end end return true end
new(options)
click to toggle source
Calls superclass method
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 95 def initialize(options) super() install_event_preprocessor(options[:event_preprocessor]) if options[:event_preprocessor] end
Public Instance Methods
cache_fetch_hit(event)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 123 def cache_fetch_hit(event) PhusionPassenger.log_cache_hit(nil, event.payload[:key]) end
cache_generate(event)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 127 def cache_generate(event) PhusionPassenger.log_cache_miss(nil, event.payload[:key], event.duration * 1000) end
cache_read(event)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 115 def cache_read(event) if event.payload[:hit] PhusionPassenger.log_cache_hit(nil, event.payload[:key]) else PhusionPassenger.log_cache_miss(nil, event.payload[:key]) end end
process_action(event)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 100 def process_action(event) view_runtime = event.payload[:view_runtime] if view_runtime PhusionPassenger.log_total_view_rendering_time(nil, (view_runtime * 1000).to_i) end end
sql(event)
click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 107 def sql(event) PhusionPassenger.log_database_query(nil, event.payload[:name] || "SQL", event.time, event.end, event.payload[:sql]) end