Parent

Class/Module Index [+]

Quicksearch

PhusionPassenger::ActiveSupport3Extensions::UnionStationExtension

Public Class Methods

install!(options, user_options) click to toggle source
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 39
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
# File lib/phusion_passenger/active_support3_extensions/init.rb, line 93
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 121
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 125
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 113
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 98
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 105
def sql(event)
  PhusionPassenger.log_database_query(nil,
    event.payload[:name] || "SQL",
    event.time,
    event.end,
    event.payload[:sql])
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.