Class: SolidObserver::Services::RecordCacheMetric

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event, buffer) ⇒ RecordCacheMetric

Returns a new instance of RecordCacheMetric.



12
13
14
15
# File 'lib/solid_observer/services/record_cache_metric.rb', line 12

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

Class Method Details

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



8
9
10
# File 'lib/solid_observer/services/record_cache_metric.rb', line 8

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

Instance Method Details

#callObject



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/solid_observer/services/record_cache_metric.rb', line 17

def call
  @buffer.increment(
    event_type: event_type,
    period_start: period_start,
    operations_count: 1,
    hits_count: hit_increment,
    misses_count: miss_increment,
    errors_count: error_increment,
    duration_total: duration_in_seconds
  )
rescue => error
  Rails.logger&.warn("[SolidObserver] Cache metric recording failed: #{error.message}") if defined?(Rails)
end