Sha256: c737dba58c7dedcac01882861a2c822fb5662e11114715f41a9c1a3cc545f66a

Contents?: true

Size: 1.05 KB

Versions: 160

Compression:

Stored size: 1.05 KB

Contents

module ScoutApm
  module ServerIntegrations
    class Passenger
      attr_reader :logger

      def initialize(logger)
        @logger = logger
      end

      def name
        :passenger
      end

      def forking?; true; end

      def present?
        (defined?(::Passenger) && defined?(::Passenger::AbstractServer)) || defined?(::PhusionPassenger)
      end

      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.shutdown
        end
      end

      def found?
        true
      end
    end
  end
end

Version data entries

160 entries across 160 versions & 1 rubygems

Version Path
scout_apm-2.4.1 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.4.0 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.5 lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre16 lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre15 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.4 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.3 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.4.0.pre3 lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre14 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.4.0.pre2 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.2 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.4.0.pre lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre13 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.1 lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre12 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.0 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.0.pre3 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.0.pre2 lib/scout_apm/server_integrations/passenger.rb
scout_apm-2.3.0.pre1 lib/scout_apm/server_integrations/passenger.rb
scout_apm-3.0.0.pre11 lib/scout_apm/server_integrations/passenger.rb