class ScoutApm::ServerIntegrations::Passenger

Attributes

logger[R]

Public Class Methods

new(logger) click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 6
def initialize(logger)
  @logger = logger
end

Public Instance Methods

forking?() click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 14
def forking?; true; end
found?() click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 36
def found?
  true
end
install() click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 20
def install
  logger.info "Installing Passenger worker loop."

  PhusionPassenger.on_event(:starting_worker_process) do |forked|
    logger.debug "Passenger is starting a worker process. Starting worker thread."
    ScoutApm::Agent.instance.start_background_worker
  end

  # The agent's at_exit hook doesn't run when a Passenger process stops.
  # This does run when a process stops.
  PhusionPassenger.on_event(:stopping_worker_process) do
    logger.debug "Passenger is stopping a worker process, shutting down the agent."
    ScoutApm::Agent.instance.stop_background_worker
  end
end
name() click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 10
def name
  :passenger
end
present?() click to toggle source
# File lib/scout_apm/server_integrations/passenger.rb, line 16
def present?
  (defined?(::Passenger) && defined?(::Passenger::AbstractServer)) || defined?(::PhusionPassenger)
end