Method: ElbPing::Display.summary

Defined in:
lib/elbping/display.rb

.summary(stats) ⇒ Object

Display summary of requests, responses, and latencies (for aggregate and per-node)

Arguments:

  • stats: (ElbPing::Stats)



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/elbping/display.rb', line 65

def self.summary(stats)
  pinged_nodes = stats.nodes.keys.select { |n| stats.nodes[n][:requests] > 0 }
  pinged_nodes.each { |node|
    loss_pct = (stats.node_loss(node) * 100).to_i
    self.out "--- #{node} statistics ---"
    self.out "#{stats.nodes[node][:requests]} requests, #{stats.nodes[node][:responses]} responses, #{loss_pct}% loss"
    self.out "min/avg/max = #{stats.nodes[node][:latencies].min}/#{stats.nodes[node][:latencies].mean}/#{stats.nodes[node][:latencies].max} ms"
  }

  loss_pct = (stats.total_loss * 100).to_i
  self.out '--- total statistics ---'
  self.out "#{stats.total[:requests]} requests, #{stats.total[:responses]} responses, #{loss_pct}% loss, #{stats.nodes.size} nodes"
  self.out "min/avg/max = #{stats.total[:latencies].min}/#{stats.total[:latencies].mean}/#{stats.total[:latencies].max} ms"
end