Class: StandardCircuit::Notifiers::Metrics

Inherits:
Object
  • Object
show all
Defined in:
lib/standard_circuit/notifiers/metrics.rb

Constant Summary collapse

STATE_FOR_COLOR =
{
  Stoplight::Color::RED => "opened",
  Stoplight::Color::GREEN => "closed",
  Stoplight::Color::YELLOW => "half_open"
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(metric_prefix: "external") ⇒ Metrics

Returns a new instance of Metrics.



10
11
12
# File 'lib/standard_circuit/notifiers/metrics.rb', line 10

def initialize(metric_prefix: "external")
  @metric_prefix = metric_prefix
end

Instance Method Details

#notify(light, _from_color, to_color, _error) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/standard_circuit/notifiers/metrics.rb', line 14

def notify(light, _from_color, to_color, _error)
  state = STATE_FOR_COLOR.fetch(to_color, to_color)
  ::Sentry::Metrics.count(
    "#{@metric_prefix}.circuit_breaker",
    value: 1,
    attributes: { service: light.name, state: state }
  )
end