def stats(reset = false)
      stats = {
        "brokers"        => @brokers.map { |b| b.stats },
        "heartbeat"      => @options[:heartbeat],
        "non-deliveries" => @non_delivery_stats.all,
        "returns"        => @return_stats.all
      }
      stats["exceptions"] = @exception_stats.stats unless @options[:exception_stats]
      reset_stats if reset
      stats
    end
def stats(reset = false)
      stats = {
        "brokers"        => @brokers.map { |b| b.stats },
        "heartbeat"      => @options[:heartbeat],
        "non-deliveries" => @non_delivery_stats.all,
        "returns"        => @return_stats.all
      }
      stats["exceptions"] = @exception_stats.stats unless @options[:exception_stats]
      reset_stats if reset
      stats
    end
Get broker client statistics

 === Parameters:
 reset(Boolean):: Whether to reset the statistics after getting the current ones

 === Return
 stats(Hash):: Broker client stats with keys
   "brokers"(Array):: Stats for each broker client in priority order
   "exceptions"(Hash|nil):: Exceptions raised per category, or nil if none
     "total"(Integer):: Total exceptions for this category
     "recent"(Array):: Most recent as a hash of "count", "type", "message", "when", and "where"
   "heartbeat"(Integer|nil):: Number of seconds between AMQP heartbeats, or nil if heartbeat disabled
   "non_deliveries"(Hash|nil):: Non-delivery activity stats with keys "total", "percent", "last", and "rate"
     with percentage breakdown per non-delivery reason, or nil if none
   "returns"(Hash|nil):: Message return activity stats with keys "total", "percent", "last", and "rate"
     with percentage breakdown per return reason, or nil if none