class Object
Public Instance Methods
start(launcher)
click to toggle source
rubocop:disable Metrics/MethodLength, Metrics/AbcSize
# File lib/puma/plugin/metrics.rb, line 7 def start(launcher) str = launcher.options[:metrics_url] || 'tcp://0.0.0.0:9393' require 'puma/metrics/app' app = Puma::Metrics::App.new launcher uri = URI.parse str metrics = Puma::Server.new app, launcher.events metrics.min_threads = 0 metrics.max_threads = 1 case uri.scheme when 'tcp' launcher.events.log "* Starting metrics server on #{str}" metrics.add_tcp_listener uri.host, uri.port else launcher.events.error "Invalid control URI: #{str}" end launcher.events.register(:state) do |state| if %i[halt restart stop].include?(state) # rubocop:disable Style/SoleNestedConditional metrics.stop(true) unless metrics.shutting_down? # rubocop:enable Style/SoleNestedConditional end end metrics.run end