Class: Dionysus::Producer::Outbox::LatencyTracker
- Inherits:
-
Object
- Object
- Dionysus::Producer::Outbox::LatencyTracker
- Defined in:
- lib/dionysus/producer/outbox/latency_tracker.rb
Instance Method Summary collapse
- #calculate(interval: 1.minute) ⇒ Object
-
#initialize(config: Dionysus::Producer.configuration, clock: Time) ⇒ LatencyTracker
constructor
A new instance of LatencyTracker.
Constructor Details
#initialize(config: Dionysus::Producer.configuration, clock: Time) ⇒ LatencyTracker
Returns a new instance of LatencyTracker.
10 11 12 13 |
# File 'lib/dionysus/producer/outbox/latency_tracker.rb', line 10 def initialize(config: Dionysus::Producer.configuration, clock: Time) @config = config @clock = clock end |
Instance Method Details
#calculate(interval: 1.minute) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/dionysus/producer/outbox/latency_tracker.rb', line 15 def calculate(interval: 1.minute) records = outbox_model.published_since(interval.ago) latencies = records.map(&:publishing_latency) LatencyTrackerResult.new( latencies.min.to_d, latencies.max.to_d, calculate_average(latencies), calculate_highest_since_creation_date.to_d ) end |