Class: Amigo::Autoscaler::Handlers::Log

Inherits:
Amigo::Autoscaler::Handler show all
Defined in:
lib/amigo/autoscaler/handlers/log.rb

Constant Summary collapse

DEFAULT_LOG =
->(level, message, params={}) { Amigo.log(nil, level, message, params) }

Instance Method Summary collapse

Constructor Details

#initialize(message: "high_latency_queues", log: DEFAULT_LOG) ⇒ Log

Returns a new instance of Log.

Parameters:

  • message (String) (defaults to: "high_latency_queues")

    Log message for structured logging.\ Has “_restored” appended on scale_down.

  • log (Proc) (defaults to: DEFAULT_LOG)

    Proc/callable called with (level, message, params={}). By default, use Amigo.log (which logs to the Sidekiq logger).



15
16
17
18
19
# File 'lib/amigo/autoscaler/handlers/log.rb', line 15

def initialize(message: "high_latency_queues", log: DEFAULT_LOG)
  @message = message
  @log = log
  super()
end

Instance Method Details

#scale_down(depth:, duration:) ⇒ Object



25
26
27
# File 'lib/amigo/autoscaler/handlers/log.rb', line 25

def scale_down(depth:, duration:, **)
  self._log(:info, "#{@message}_restored", depth:, duration:)
end

#scale_up(high_latencies:, depth:, duration:, pool_usage:) ⇒ Object



21
22
23
# File 'lib/amigo/autoscaler/handlers/log.rb', line 21

def scale_up(high_latencies:, depth:, duration:, pool_usage:, **)
  self._log(:warn, @message, queues: high_latencies, depth:, duration:, pool_usage:)
end