Sha256: a2332e6ef32fc3de592767f8f97d7920811327557322bfc77a0d5d6d4bd5cefb

Contents?: true

Size: 911 Bytes

Versions: 5

Compression:

Stored size: 911 Bytes

Contents

#!/usr/bin/env ruby

STDIN.sync = true

shutdown = proc do
  puts 'bye.'
  exit 0
end

trap('QUIT', &shutdown)
trap('INT', &shutdown)
trap('TERM', &shutdown)
trap('KILL', &shutdown)

total_requests = 0
requests_per_second = 0
max_requests_received = 0

def cast(number)
  "#{number}".ljust(8, ' ')
end

flush = Thread.new do
  loop do
    sleep 1
    template = "unix: %s rps: %s max: %s total: %s"
    bindings = []
    bindings.push(Time.now.to_i)
    bindings.push(cast(requests_per_second))
    bindings.push(cast(max_requests_received))
    bindings.push(cast(total_requests))
    puts (template % bindings)
    requests_per_second = 0
  end
end

read = Thread.new do
  STDIN.each_line do |line|
    line = nil
    total_requests += 1
    requests_per_second += 1
    if requests_per_second > max_requests_received
      max_requests_received = requests_per_second
    end
  end
end

flush.join
read.join

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ix-cli-0.0.5 bin/ix-rps
ix-cli-0.0.4 bin/ix-rps
ix-cli-0.0.3 bin/ix-rps
ix-cli-0.0.2 bin/ix-rps
ix-cli-0.0.1 bin/ix-rps