{#each peers as peer (peer.address)} {/each}
Address Err Load Ping TX RX Rat Tot Free Min free
{peer.address} {peer.unreachable_count} {peer.load_1_min.toFixed(1)} / {peer.load_5_min.toFixed(1)} / {peer.load_15_min.toFixed(1)} {(peer.latency/1000).toPrecision(3)} {formatDataVolume(peer.avg_network_tx, 3)}/s {formatDataVolume(peer.avg_network_rx, 3)}/s {peer.network_ratio.toFixed(2)} {formatDataVolume(peer.avg_network_total, 3)}/s {formatDataVolume(peer.free_space, 4)} {formatDataVolume(peer.min_free_space, 3)}
Total ({peers.length}) {peers.reduce((acc, val) => acc += val.unreachable_count, 0)} {peers.reduce((acc, val) => acc += val.load_1_min, 0).toFixed(1)} / {peers.reduce((acc, val) => acc += val.load_5_min, 0).toFixed(1)} / {peers.reduce((acc, val) => acc += val.load_15_min, 0).toFixed(1)} {(peers.reduce((acc, val) => acc += val.latency, 0)/1000).toFixed(0)} {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx, 0), 3)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0), 3)}/s {peers.reduce((acc, val) => acc += val.network_ratio, 0).toFixed(2)} {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 0), 3)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0), 4)} {formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0), 3)}
Average {(peers.reduce((acc, val) => acc += val.load_1_min, 0) / peers.length).toFixed(1)} / {(peers.reduce((acc, val) => acc += val.load_5_min, 0) / peers.length).toFixed(1)} / {(peers.reduce((acc, val) => acc += val.load_15_min, 0) / peers.length).toFixed(1)} {(peers.reduce((acc, val) => acc += val.latency, 0) / 1000 / peers.length).toFixed(0)} {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_tx, 0) / peers.length, 3)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0) / peers.length, 3)}/s {(peers.reduce((acc, val) => acc += val.network_ratio, 0) / peers.length).toFixed(2)} {formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 3) / peers.length, 4)}/s {formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0) / peers.length, 4)} {formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0) / peers.length, 3)}