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:, failure_counter: :failures) ⇒ DestinationHealth
constructor
A new instance of DestinationHealth.
- #last_failure ⇒ Object
- #last_loss ⇒ 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:, 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
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_failure ⇒ Object
35 |
# File 'lib/julewire/core/integration/destination_health.rb', line 35 def last_failure = @state.last_failure |
#last_loss ⇒ Object
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 |