Collects and displays statistics on captured packets.
Number of DRb exceptions raised
Number of DRb messages sent
Number of DRb packets seen
Number of DRb results received
Records the last timestamp for a message sent between peers
Records the last message sent between peers
Records statistics about allocations required to send a message. The outer key is the message name while the inner key is the argument count (including block).
Records statistics about latencies for sent messages. The outer key is the message name while the inner key is the argument count (including block).
The recorded latency is from the first packet in the message-send to the last packet in the message result.
Records statistics about latencies for messages sent between peers
Number of Rinda packets seen
Number of packets seen, including non-DRb traffic
Adds information from message
# File lib/drbdump/statistics.rb, line 95 def add_message_send message @drb_messages_sent += 1 msg = message.message argc = message.argument_count source = message.source destination = message.destination @last_peer_send[source][destination] = message.timestamp @last_sent_message[source][destination] = msg, argc, message.allocations end
Adds information from result
# File lib/drbdump/statistics.rb, line 111 def add_result result source = result.source destination = result.destination @drb_results_received += 1 @drb_exceptions_raised += 1 unless result.status sent_timestamp = @last_peer_send[destination].delete source message, argc, allocations = @last_sent_message[destination].delete source return unless sent_timestamp latency = result.timestamp - sent_timestamp @peer_latencies[destination][source].add latency @message_latencies[message][argc].add latency @message_allocations[message][argc].add allocations + result.allocations end
Writes all statistics on packets and messages processesed to $stdout
# File lib/drbdump/statistics.rb, line 237 def show show_basic puts show_messages puts show_peers end
Writes basic statistics on packets and messages processed to $stdout
# File lib/drbdump/statistics.rb, line 248 def show_basic puts "#{@total_packet_count} total packets captured" puts "#{@rinda_packet_count} Rinda packets captured" puts "#{@drb_packet_count} DRb packets captured" puts "#{@drb_messages_sent} messages sent" puts "#{@drb_results_received} results received" puts "#{@drb_exceptions_raised} exceptions raised" end
Shows peer statistics
# File lib/drbdump/statistics.rb, line 260 def show_peers source_size, destination_size, count_size, rows = extract_and_size @peer_latencies multiple, single = rows.partition { |_, _, count| count > 1 } multiple << single.pop if single.length == 1 count_size = [count_size, single.length.to_s.size].max puts 'Peers min, avg, max, stddev:' puts multiple_peers count_size, source_size, destination_size, multiple puts single_peers count_size, single unless single.empty? end