class Shift::CircuitBreaker::CircuitMonitor
Attributes
logger[RW]
monitor[RW]
Public Class Methods
new(monitor: Shift::CircuitBreaker::Adapters::NewRelicAdapter, logger: Shift::CircuitBreaker::CircuitLogger.new)
click to toggle source
Initializer creates an instance of the service
@param [Object] monitor - service to handle monitoring @param [Object] logger - service to handle logging
# File lib/shift/circuit_breaker/circuit_monitor.rb, line 12 def initialize(monitor: Shift::CircuitBreaker::Adapters::NewRelicAdapter, logger: Shift::CircuitBreaker::CircuitLogger.new) self.monitor = monitor self.logger = logger end
Public Instance Methods
record_metric(name, state)
click to toggle source
@param [String] name - The circuit name @param [Symbol] state - The circuit state
# File lib/shift/circuit_breaker/circuit_monitor.rb, line 19 def record_metric(name, state) metric = formatted_metric(name, state) monitor.call(metric) if monitor.respond_to?(:call) logger.info("* #{metric} *") end
Private Instance Methods
formatted_metric(name, state)
click to toggle source
# File lib/shift/circuit_breaker/circuit_monitor.rb, line 27 def formatted_metric(name, state) "Custom/#{name.to_s.classify}CircuitBreaker/#{state.to_s.classify}" end