Module: HerokuVector

Defined in:
lib/heroku_vector.rb,
lib/heroku_vector.rb,
lib/heroku_vector.rb,
lib/heroku_vector/helper.rb,
lib/heroku_vector/worker.rb,
lib/heroku_vector/sampler.rb,
lib/heroku_vector/version.rb,
lib/heroku_vector/dyno_scaler.rb,
lib/heroku_vector/process_manager.rb

Defined Under Namespace

Modules: Engine, Helper, Source Classes: DynoScaler, ProcessManager, Sampler, Worker

Constant Summary collapse

DEFAULTS =
{
  :min_scale_time_secs => 5 * 60, # 5 mins
  :log_level => Logger::INFO,
  :engine => Engine::Heroku.new
}
VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.add_dyno_scaler(name, options = {}) ⇒ Object



72
73
74
# File 'lib/heroku_vector.rb', line 72

def add_dyno_scaler(name, options={})
  dyno_scalers[name] = options
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (HerokuVector)

    the object that the method was called on



44
45
46
# File 'lib/heroku_vector.rb', line 44

def configure
  yield self if block_given?
end

.default_loggerObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/heroku_vector.rb', line 24

def default_logger
  return options[:logger] if options[:logger]

  logger = Logger.new(STDOUT)
  logger.level = options[:log_level]
  logger.formatter = proc do |severity, time, program_name, message|
    "#{time.utc.iso8601(3)} #{severity}: #{message}\n"
  end

  logger
end

.dyno_scalersObject



64
65
66
# File 'lib/heroku_vector.rb', line 64

def dyno_scalers
  @dyno_scalers ||= {}
end

.dyno_scalers=(dyno_scalers) ⇒ Object



68
69
70
# File 'lib/heroku_vector.rb', line 68

def dyno_scalers=(dyno_scalers)
  @dyno_scalers = dyno_scalers
end

.engineObject



56
57
58
# File 'lib/heroku_vector.rb', line 56

def engine
  @engine ||= options[:engine]
end

.engine=(engine) ⇒ Object



60
61
62
# File 'lib/heroku_vector.rb', line 60

def engine=(engine)
  @engine = engine
end

.heroku_app_nameObject



84
85
86
# File 'lib/heroku_vector.rb', line 84

def heroku_app_name
  @heroku_app_name ||= ENV['HEROKU_APP_NAME']
end

.heroku_app_name=(app_name) ⇒ Object



88
89
90
# File 'lib/heroku_vector.rb', line 88

def heroku_app_name=(app_name)
  @heroku_app_name = app_name
end

.loggerObject



48
49
50
# File 'lib/heroku_vector.rb', line 48

def logger
  @logger ||= default_logger
end

.logger=(log) ⇒ Object



52
53
54
# File 'lib/heroku_vector.rb', line 52

def logger=(log)
  @logger = log
end

.min_scale_time_secsObject



76
77
78
# File 'lib/heroku_vector.rb', line 76

def min_scale_time_secs
  @min_scale_time_secs ||= options[:min_scale_time_secs]
end

.min_scale_time_secs=(time_secs) ⇒ Object



80
81
82
# File 'lib/heroku_vector.rb', line 80

def min_scale_time_secs=(time_secs)
  @min_scale_time_secs = time_secs
end

.newrelic_account_idObject



100
101
102
# File 'lib/heroku_vector.rb', line 100

def 
  @newrelic_account_id ||= ENV['NEWRELIC_ACCOUNT_ID']
end

.newrelic_account_id=(account_id) ⇒ Object



104
105
106
# File 'lib/heroku_vector.rb', line 104

def ()
  @newrelic_account_id = 
end

.newrelic_api_keyObject



92
93
94
# File 'lib/heroku_vector.rb', line 92

def newrelic_api_key
  @newrelic_api_key ||= ENV['NEWRELIC_API_KEY']
end

.newrelic_api_key=(api_key) ⇒ Object



96
97
98
# File 'lib/heroku_vector.rb', line 96

def newrelic_api_key=(api_key)
  @newrelic_api_key = api_key
end

.newrelic_app_idObject



108
109
110
# File 'lib/heroku_vector.rb', line 108

def newrelic_app_id
  @newrelic_app_id ||= ENV['NEWRELIC_APP_ID']
end

.newrelic_app_id=(app_id) ⇒ Object



112
113
114
# File 'lib/heroku_vector.rb', line 112

def newrelic_app_id=(app_id)
  @newrelic_app_id = app_id
end

.optionsObject



36
37
38
# File 'lib/heroku_vector.rb', line 36

def options
  @options ||= DEFAULTS.dup
end

.options=(opts) ⇒ Object



40
41
42
# File 'lib/heroku_vector.rb', line 40

def options=(opts)
  @options = opts
end

.sidekiq_redis_namespaceObject



120
121
122
# File 'lib/heroku_vector.rb', line 120

def sidekiq_redis_namespace
  ENV['SIDEKIQ_REDIS_NAMESPACE']
end

.sidekiq_redis_urlObject



116
117
118
# File 'lib/heroku_vector.rb', line 116

def sidekiq_redis_url
  ENV['REDIS_URL'] || 'redis://127.0.0.1/0'
end