Class: Amigo::Autoscaler::Checkers::Chain

Inherits:
Amigo::Autoscaler::Checker show all
Defined in:
lib/amigo/autoscaler/checkers/chain.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(chain) ⇒ Chain

Chain multiple checkers together. Latencies are merged, with the highest latency winning. Pool usage has the highest take precedence.

Parameters:



15
16
17
18
# File 'lib/amigo/autoscaler/checkers/chain.rb', line 15

def initialize(chain)
  @chain = chain
  super()
end

Instance Attribute Details

#chainObject

Returns the value of attribute chain.



9
10
11
# File 'lib/amigo/autoscaler/checkers/chain.rb', line 9

def chain
  @chain
end

Instance Method Details

#get_latenciesObject



20
21
22
23
24
25
26
27
28
# File 'lib/amigo/autoscaler/checkers/chain.rb', line 20

def get_latencies
  h = {}
  @chain.each do |c|
    c.get_latencies.each do |k, v|
      h[k] = [h[k], v].compact.max
    end
  end
  return h
end

#get_pool_usageObject



30
31
32
# File 'lib/amigo/autoscaler/checkers/chain.rb', line 30

def get_pool_usage
  return @chain.map(&:get_pool_usage).compact.max
end