diff --git a/svelte/src/admin_panel/Home.svelte b/svelte/src/admin_panel/Home.svelte index 25337d8..822ce5f 100644 --- a/svelte/src/admin_panel/Home.svelte +++ b/svelte/src/admin_panel/Home.svelte @@ -4,6 +4,7 @@ import { formatDataVolume, formatThousands, formatDate, formatNumber, formatDura import Chart from "../util/Chart.svelte"; import { color_by_name } from "../util/Util.svelte"; import ServerDiagnostics from "./ServerDiagnostics.svelte"; +import PeerTable from "./PeerTable.svelte"; let graphViews let graphBandwidth @@ -208,45 +209,13 @@ onDestroy(() => { {formatNumber(status.db_latency / 1000, 3)} ms -

Pixelstore peers

-
- - - - - - - - - - - - - - - - - {#each status.peers as peer} - - - - - - - - - - - - - {/each} - -
AddressRoleErr1m5m15mPingNetloadFreeMin free
{peer.address}{peer.role}{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)}
-
+ +

Cache nodes

+ {if (val.role === "cache") {acc.push(val)}; return acc}, [])}/> + +

Storage nodes

+ {if (val.role === "storage") {acc.push(val)}; return acc}, [])}/> +

Pixelstore stats

diff --git a/svelte/src/admin_panel/PeerTable.svelte b/svelte/src/admin_panel/PeerTable.svelte new file mode 100644 index 0000000..b514b9e --- /dev/null +++ b/svelte/src/admin_panel/PeerTable.svelte @@ -0,0 +1,66 @@ + + +
+
+ + + + + + + + + + + + + + + {#each peers as peer} + + + + + + + + + + + + {/each} + + + + + + + + + + + + + + + + + + + + + + + + +
AddressErr1m5m15mPingNetloadFreeMin 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_load, 4)}/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_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)}
+ diff --git a/svelte/src/file_viewer/viewers/SpeedLimit.svelte b/svelte/src/file_viewer/viewers/SpeedLimit.svelte index f5e4aa2..16132c9 100644 --- a/svelte/src/file_viewer/viewers/SpeedLimit.svelte +++ b/svelte/src/file_viewer/viewers/SpeedLimit.svelte @@ -33,7 +33,7 @@ export let file = {