Class: Julewire::Core::Integration::DestinationHealth

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/core/integration/destination_health.rb

Instance Method Summary collapse

Constructor Details

#initialize(counter_keys:, failure_counter: :failures) ⇒ DestinationHealth

Returns a new instance of DestinationHealth.



8
9
10
11
12
13
14
15
# File 'lib/julewire/core/integration/destination_health.rb', line 8

def initialize(counter_keys:, failure_counter: :failures)
  @failure_counter = failure_counter
  @state = Diagnostics::Health.new(
    counter_keys: counter_keys,
    failure_counter: failure_counter,
    track_failures: failure_counter == :failures
  )
end

Instance Method Details

#clear_degraded!Object



29
# File 'lib/julewire/core/integration/destination_health.rb', line 29

def clear_degraded! = @state.clear_failures!

#degraded?Boolean

Returns:

  • (Boolean)


31
# File 'lib/julewire/core/integration/destination_health.rb', line 31

def degraded? = @state.degraded?(status_from: :failure_or_loss)

#increment(key, by: 1) ⇒ Object



17
18
19
# File 'lib/julewire/core/integration/destination_health.rb', line 17

def increment(key, by: 1)
  @state.increment(key, by: by)
end

#last_failureObject



35
# File 'lib/julewire/core/integration/destination_health.rb', line 35

def last_failure = @state.last_failure

#last_lossObject



33
# File 'lib/julewire/core/integration/destination_health.rb', line 33

def last_loss = @state.last_loss

#record_failure(error, counter: @failure_counter, **metadata) ⇒ Object



21
22
23
# File 'lib/julewire/core/integration/destination_health.rb', line 21

def record_failure(error, counter: @failure_counter, **)
  @state.record_failure(error, counter: counter, degrade: false, **)
end

#record_loss(reason:, counter: reason, **metadata) ⇒ Object



25
26
27
# File 'lib/julewire/core/integration/destination_health.rb', line 25

def record_loss(reason:, counter: reason, **)
  @state.record_loss(reason: reason, counter: counter, degrade: false, **)
end

#snapshot(status: nil, **fields) ⇒ Object



37
38
39
# File 'lib/julewire/core/integration/destination_health.rb', line 37

def snapshot(status: nil, **fields)
  @state.snapshot(status: status, status_from: :failure_or_loss, include_loss: true, **fields)
end