Class: Julewire::Core::Integration::DestinationHealth
- Inherits:
-
Object
- Object
- Julewire::Core::Integration::DestinationHealth
- Defined in:
- lib/julewire/core/integration/destination_health.rb
Instance Method Summary collapse
- #clear_degraded! ⇒ Object
- #degraded? ⇒ Boolean
- #increment(key, by: 1) ⇒ Object
-
#initialize(counter_keys:, callback_failure_counter: nil, failure_counter: :failures) ⇒ DestinationHealth
constructor
A new instance of DestinationHealth.
- #last_callback_failure ⇒ Object
- #last_failure ⇒ Object
- #last_loss ⇒ Object
- #record_callback_failure(callback_failure) ⇒ Object
- #record_failure(error, counter: @failure_counter, **metadata) ⇒ Object
- #record_loss(reason:, counter: reason, **metadata) ⇒ Object
- #snapshot(status: nil, **fields) ⇒ Object
Constructor Details
#initialize(counter_keys:, callback_failure_counter: nil, failure_counter: :failures) ⇒ DestinationHealth
Returns a new instance of DestinationHealth.
8 9 10 11 12 13 14 15 16 |
# File 'lib/julewire/core/integration/destination_health.rb', line 8 def initialize(counter_keys:, callback_failure_counter: nil, failure_counter: :failures) @failure_counter = failure_counter @state = Diagnostics::Health.new( callback_failure_counter: callback_failure_counter, counter_keys: counter_keys, failure_counter: failure_counter, track_failures: failure_counter == :failures ) end |
Instance Method Details
#clear_degraded! ⇒ Object
34 |
# File 'lib/julewire/core/integration/destination_health.rb', line 34 def clear_degraded! = @state.clear_failures! |
#degraded? ⇒ Boolean
36 |
# File 'lib/julewire/core/integration/destination_health.rb', line 36 def degraded? = @state.degraded?(status_from: :failure_or_loss) |
#increment(key, by: 1) ⇒ Object
18 19 20 |
# File 'lib/julewire/core/integration/destination_health.rb', line 18 def increment(key, by: 1) @state.increment(key, by: by) end |
#last_callback_failure ⇒ Object
38 |
# File 'lib/julewire/core/integration/destination_health.rb', line 38 def last_callback_failure = @state.last_callback_failure |
#last_failure ⇒ Object
42 |
# File 'lib/julewire/core/integration/destination_health.rb', line 42 def last_failure = @state.last_failure |
#last_loss ⇒ Object
40 |
# File 'lib/julewire/core/integration/destination_health.rb', line 40 def last_loss = @state.last_loss |
#record_callback_failure(callback_failure) ⇒ Object
30 31 32 |
# File 'lib/julewire/core/integration/destination_health.rb', line 30 def record_callback_failure(callback_failure) @state.record_callback_failure(callback_failure) end |
#record_failure(error, counter: @failure_counter, **metadata) ⇒ Object
22 23 24 |
# File 'lib/julewire/core/integration/destination_health.rb', line 22 def record_failure(error, counter: @failure_counter, **) @state.record_failure(error, counter: counter, degrade: false, **) end |
#record_loss(reason:, counter: reason, **metadata) ⇒ Object
26 27 28 |
# File 'lib/julewire/core/integration/destination_health.rb', line 26 def record_loss(reason:, counter: reason, **) @state.record_loss(reason: reason, counter: counter, degrade: false, **) end |
#snapshot(status: nil, **fields) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/julewire/core/integration/destination_health.rb', line 44 def snapshot(status: nil, **fields) snapshot = @state.snapshot(status: status, status_from: :failure_or_loss, include_loss: true, **fields) callback_failure = @state.last_callback_failure return snapshot unless callback_failure snapshot.merge(last_callback_failure: callback_failure).freeze end |