Class: RailsAutoscaleAgent::Config

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/rails_autoscale_agent/config.rb

Constant Summary collapse

DEFAULT_WORKER_ADAPTERS =
'sidekiq,delayed_job,que,resque'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rails_autoscale_agent/config.rb', line 18

def initialize
  @worker_adapters = prepare_worker_adapters

  # Allow the add-on name to be configured - needed for testing
  @addon_name = ENV['RAILS_AUTOSCALE_ADDON'] || 'RAILS_AUTOSCALE'
  @api_base_url = ENV["#{@addon_name}_URL"]
  @dev_mode = ENV['RAILS_AUTOSCALE_DEV'] == 'true'
  @debug = dev_mode? || ENV['RAILS_AUTOSCALE_DEBUG'] == 'true'
  @track_long_running_jobs = ENV['RAILS_AUTOSCALE_LONG_JOBS'] == 'true'
  @max_queues = ENV.fetch('RAILS_AUTOSCALE_MAX_QUEUES', 50).to_i
  @max_request_size = 100_000 # ignore request payloads over 100k since they skew the queue times
  @report_interval = 10 # this default will be overwritten during Reporter#register!
  @logger ||= defined?(Rails) ? Rails.logger : ::Logger.new(STDOUT)
  @dyno = dev_mode? ? 'dev.1' : ENV['DYNO']
end

Instance Attribute Details

#addon_nameObject

Returns the value of attribute addon_name.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def addon_name
  @addon_name
end

#api_base_urlObject

Returns the value of attribute api_base_url.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def api_base_url
  @api_base_url
end

#debugObject Also known as: debug?

Returns the value of attribute debug.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def debug
  @debug
end

#dev_modeObject Also known as: dev_mode?

Returns the value of attribute dev_mode.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def dev_mode
  @dev_mode
end

#dynoObject

Returns the value of attribute dyno.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def dyno
  @dyno
end

#latency_for_active_jobsObject

Returns the value of attribute latency_for_active_jobs.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def latency_for_active_jobs
  @latency_for_active_jobs
end

#loggerObject

Returns the value of attribute logger.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def logger
  @logger
end

#max_queuesObject

Returns the value of attribute max_queues.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def max_queues
  @max_queues
end

#max_request_sizeObject

Returns the value of attribute max_request_size.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def max_request_size
  @max_request_size
end

#quietObject Also known as: quiet?

Returns the value of attribute quiet.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def quiet
  @quiet
end

#report_intervalObject

Returns the value of attribute report_interval.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def report_interval
  @report_interval
end

#sidekiq_latency_for_active_jobsObject

Returns the value of attribute sidekiq_latency_for_active_jobs.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def sidekiq_latency_for_active_jobs
  @sidekiq_latency_for_active_jobs
end

#track_long_running_jobsObject

Returns the value of attribute track_long_running_jobs.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def track_long_running_jobs
  @track_long_running_jobs
end

#worker_adaptersObject

Returns the value of attribute worker_adapters.



11
12
13
# File 'lib/rails_autoscale_agent/config.rb', line 11

def worker_adapters
  @worker_adapters
end

Instance Method Details

#ignore_large_requests?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/rails_autoscale_agent/config.rb', line 38

def ignore_large_requests?
  @max_request_size
end

#to_sObject



34
35
36
# File 'lib/rails_autoscale_agent/config.rb', line 34

def to_s
  "#{@dyno}##{Process.pid}"
end