Sha256: faf04233a381a2e7b9564d5042591706331113b538e47778fa9d924d57c0bbea

Contents?: true

Size: 928 Bytes

Versions: 3

Compression:

Stored size: 928 Bytes

Contents

module ManageEngine
  module Instrumentation
    class PumaWorker
      
      def present?
          defined?(Puma::Server)
        end
        
        def version
          Puma::Const::PUMA_VERSION
        end
        
        def env
          ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development'
        end
        
        def name
          'Puma Worker'
        end
        
        def instrument
          ManageEngine::APMObjectHolder.instance.log.info "Instrumenting Puma server workers. Version: #{version}"
            Puma::Server.class_eval do
                include ManageEngine::Instrumentation::PumaRun
                alias original_run run
                alias run agent_run
            end
        end
    end
    
    module PumaRun
      def agent_run(*args, &block)
        ::ManageEngine::APMObjectHolder.instance.agent.doCollect
        original_run(*args, &block)
      end
    end
    
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
site24x7_apminsight-1.9.3 lib/agent/server/instrument/puma.rb
site24x7_apminsight-1.9.2 lib/agent/server/instrument/puma.rb
site24x7_apminsight-1.9.1 lib/agent/server/instrument/puma.rb