+ {#each peers as peer}
+
+ {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_load, 4)}/s |
+ {formatDataVolume(peer.free_space, 4)} |
+ {formatDataVolume(peer.min_free_space, 3)} |
+
+ {/each}
+
+
+ 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_load, 0), 4)}/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_load, 0) / 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)} |
+
+
+