class EventHub::Statistics

Attributes

messages_average_process_time[R]
messages_average_size[R]
messages_successful[R]
messages_unsuccessful[R]

Public Class Methods

new() click to toggle source
# 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
  @mutex = Mutex.new
end

Public Instance Methods

failure() click to toggle source
# File lib/eventhub/statistics.rb, line 32
def failure
  @mutex.lock
  @messages_unsuccessful += 1
ensure
  @mutex.unlock
end
measure(size) { || ... } click to toggle source
# File lib/eventhub/statistics.rb, line 13
def measure(size, &block)
  start = Time.now
  yield
  success(Time.now - start, size)
rescue
  failure
  raise
end
messages_total() click to toggle source
# File lib/eventhub/statistics.rb, line 39
def messages_total
  messages_unsuccessful + messages_successful
end
messages_total_process_time() click to toggle source
# File lib/eventhub/statistics.rb, line 43
def messages_total_process_time
  messages_average_process_time * messages_successful
end
messages_total_size() click to toggle source
# File lib/eventhub/statistics.rb, line 47
def messages_total_size
  messages_average_size * messages_successful
end
success(process_time, size) click to toggle source
# File lib/eventhub/statistics.rb, line 22
def success(process_time, size)
  @mutex.lock
  @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
ensure
  @mutex.unlock
end