Class: Evidence::LittlesLawAnalysis::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/evidence/littles_law_analysis.rb

Instance Method Summary collapse

Constructor Details

#initialize(start, time_window) ⇒ Result

Returns a new instance of Result.



8
9
10
11
12
13
# File 'lib/evidence/littles_law_analysis.rb', line 8

def initialize(start, time_window)
  @start, @time_window = start, time_window
  @end = @start + @time_window
  @arrival_count = 0
  @response_time = 0
end

Instance Method Details

#add(millisecond) ⇒ Object



19
20
21
22
# File 'lib/evidence/littles_law_analysis.rb', line 19

def add(millisecond)
  @arrival_count += 1
  @response_time += millisecond
end

#ended?(timestamp) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/evidence/littles_law_analysis.rb', line 15

def ended?(timestamp)
  @end <= timestamp
end

#nextObject



24
25
26
# File 'lib/evidence/littles_law_analysis.rb', line 24

def next
  Result.new(@start + @time_window, @time_window)
end

#valueObject



28
29
30
31
32
# File 'lib/evidence/littles_law_analysis.rb', line 28

def value
  avg_sec_arrival_rate = @arrival_count.to_f/@time_window
  avg_sec_response_time = @response_time.to_f/1000/@arrival_count
  [@start, @end, avg_sec_arrival_rate * avg_sec_response_time]
end