diff --git a/packages/common/src/feed.ts b/packages/common/src/feed.ts index a2f7f52..8a42b99 100644 --- a/packages/common/src/feed.ts +++ b/packages/common/src/feed.ts @@ -187,7 +187,8 @@ export type Message = | Variants.AfgReceivedPrecommit | Variants.AfgAuthoritySet | Variants.StaleNodeMessage - | Variants.PongMessage; + | Variants.PongMessage + | Variants.NodeIOMessage; /** * Data type to be sent to the feed. Passing through strings means we can only serialize once, diff --git a/packages/frontend/src/Connection.ts b/packages/frontend/src/Connection.ts index a6026a3..ff8e454 100644 --- a/packages/frontend/src/Connection.ts +++ b/packages/frontend/src/Connection.ts @@ -237,7 +237,25 @@ export class Connection { nodes.mutAndMaybeSort( id, (node) => node.updateHardware(nodeHardware), - sortByColumn === Column.CPU || sortByColumn === Column.MEM || sortByColumn === Column.UPLOAD || sortByColumn === Column.DOWNLOAD, + sortByColumn === Column.CPU + || sortByColumn === Column.MEM + || sortByColumn === Column.UPLOAD + || sortByColumn === Column.DOWNLOAD, + ); + + break; + } + + case Actions.NodeIO: { + const [id, nodeIO] = message.payload; + + nodes.mutAndMaybeSort( + id, + (node) => node.updateIO(nodeIO), + sortByColumn === Column.STATE_CACHE + || sortByColumn === Column.DB_CACHE + || sortByColumn === Column.DISK_READ + || sortByColumn === Column.DISK_WRITE, ); break; diff --git a/packages/frontend/src/components/List/Column.tsx b/packages/frontend/src/components/List/Column.tsx index b68c1d1..c9a4ef3 100644 --- a/packages/frontend/src/components/List/Column.tsx +++ b/packages/frontend/src/components/List/Column.tsx @@ -405,7 +405,9 @@ function formatMemory(kbs: number, stamp: Maybe): string { function formatBytes(bytes: number, stamp: Maybe): string { const ago = stamp ? ` (${formatStamp(stamp)})` : ''; - if (bytes >= 1024 * 1024) { + if (bytes >= 1024 * 1024 * 1024) { + return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB${ago}`; + } else if (bytes >= 1024 * 1024) { return `${(bytes / (1024 * 1024)).toFixed(1)} MB${ago}`; } else if (bytes >= 1000) { return `${(bytes / 1024).toFixed(1)} kB${ago}`;