Class: SolidObserver::Services::RecordCableMetric

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_observer/services/record_cable_metric.rb

Constant Summary collapse

COUNTERS =
%i[
  broadcasts_count
  transmissions_count
  confirmations_count
  rejections_count
  perform_actions_count
  errors_count
].freeze
EVENT_COUNTER_MAP =
{
  "broadcast.action_cable" => :broadcasts_count,
  "transmit.action_cable" => :transmissions_count,
  "transmit_subscription_confirmation.action_cable" => :confirmations_count,
  "transmit_subscription_rejection.action_cable" => :rejections_count,
  "perform_action.action_cable" => :perform_actions_count
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event, buffer) ⇒ RecordCableMetric

Returns a new instance of RecordCableMetric.



29
30
31
32
# File 'lib/solid_observer/services/record_cable_metric.rb', line 29

def initialize(event, buffer)
  @event = event
  @buffer = buffer
end

Class Method Details

.call(event:, buffer: SolidObserver::CableMetricBuffer.instance) ⇒ Object



25
26
27
# File 'lib/solid_observer/services/record_cable_metric.rb', line 25

def self.call(event:, buffer: SolidObserver::CableMetricBuffer.instance)
  new(event, buffer).call
end

Instance Method Details

#callObject



34
35
36
37
38
# File 'lib/solid_observer/services/record_cable_metric.rb', line 34

def call
  @buffer.increment(metric_data)
rescue => error
  Rails.logger&.warn("[SolidObserver] Cable metric recording failed: #{error.message}") if defined?(Rails)
end