Class: Logtide::Metrics

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

Overview

Thread-safe self-metrics counters (spec 002 section 9).

Constant Summary collapse

COUNTERS =
%i[logs_sent logs_dropped errors retries circuit_breaker_trips].freeze

Instance Method Summary collapse

Constructor Details

#initializeMetrics

Returns a new instance of Metrics.



8
9
10
11
# File 'lib/logtide/metrics.rb', line 8

def initialize
  @mutex = Mutex.new
  @counters = COUNTERS.to_h { |name| [name, 0] }
end

Instance Method Details

#increment(name, amount = 1) ⇒ Object



13
14
15
# File 'lib/logtide/metrics.rb', line 13

def increment(name, amount = 1)
  @mutex.synchronize { @counters[name] += amount }
end

#resetObject



21
22
23
# File 'lib/logtide/metrics.rb', line 21

def reset
  @mutex.synchronize { COUNTERS.each { |name| @counters[name] = 0 } }
end

#snapshotObject



17
18
19
# File 'lib/logtide/metrics.rb', line 17

def snapshot
  @mutex.synchronize { @counters.dup }
end