Class: EventHub::Statistics

Inherits:
Object
  • Object
show all
Defined in:
lib/eventhub/statistics.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStatistics

Returns a new instance of Statistics.



4
5
6
7
8
9
10
# File 'lib/eventhub/statistics.rb', line 4

def initialize
  @messages_successful = 0
  @messages_unsuccessful = 0
  @messages_average_size = 0
  @messages_average_process_time = 0
  @messages_total_process_time = 0
end

Instance Attribute Details

#messages_average_process_timeObject (readonly)

Returns the value of attribute messages_average_process_time.



2
3
4
# File 'lib/eventhub/statistics.rb', line 2

def messages_average_process_time
  @messages_average_process_time
end

#messages_average_sizeObject (readonly)

Returns the value of attribute messages_average_size.



2
3
4
# File 'lib/eventhub/statistics.rb', line 2

def messages_average_size
  @messages_average_size
end

#messages_successfulObject (readonly)

Returns the value of attribute messages_successful.



2
3
4
# File 'lib/eventhub/statistics.rb', line 2

def messages_successful
  @messages_successful
end

#messages_unsuccessfulObject (readonly)

Returns the value of attribute messages_unsuccessful.



2
3
4
# File 'lib/eventhub/statistics.rb', line 2

def messages_unsuccessful
  @messages_unsuccessful
end

Instance Method Details

#failureObject



31
32
33
# File 'lib/eventhub/statistics.rb', line 31

def failure
  @messages_unsuccessful += 1
end

#measure(size, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/eventhub/statistics.rb', line 13

def measure(size, &block)
  begin
    start = Time.now
    yield
    success(Time.now - start, size)
  rescue
    failure
    raise
  end
end

#messages_totalObject



35
36
37
# File 'lib/eventhub/statistics.rb', line 35

def messages_total
  messages_unsuccessful + messages_successful
end

#messages_total_process_timeObject



39
40
41
# File 'lib/eventhub/statistics.rb', line 39

def messages_total_process_time
  messages_average_process_time * messages_successful
end

#messages_total_sizeObject



43
44
45
# File 'lib/eventhub/statistics.rb', line 43

def messages_total_size
  messages_average_size * messages_successful
end

#success(process_time, size) ⇒ Object



24
25
26
27
28
29
# File 'lib/eventhub/statistics.rb', line 24

def success(process_time, size)
  @messages_total_process_time += process_time
  @messages_average_process_time = (messages_total_process_time + process_time) / (messages_successful + 1).to_f
  @messages_average_size = (messages_total_size + size) / (messages_successful + 1).to_f
  @messages_successful += 1
end