+
Ray Dashboard
+
+
+
+
+ Host
+ Workers
+ Uptime
+ CPU
+ RAM
+ Disk
+ {/*Sent*/}
+ {/*Received*/}
+ Logs
+ Errors
+
+
+
+ {nodeInfo.clients.map(client => (
+
+ ))}
+
+
+ {lastUpdatedAt !== null && (
+
+ Last updated: {new Date(lastUpdatedAt).toLocaleString()}
+
+ )}
+
+ );
+ }
+}
+
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(withStyles(styles)(Dashboard));
diff --git a/python/ray/dashboard/client/src/pages/dashboard/NodeRowGroup.tsx b/python/ray/dashboard/client/src/pages/dashboard/NodeRowGroup.tsx
new file mode 100644
index 000000000..eb5f907ac
--- /dev/null
+++ b/python/ray/dashboard/client/src/pages/dashboard/NodeRowGroup.tsx
@@ -0,0 +1,128 @@
+import { Theme } from "@material-ui/core/styles/createMuiTheme";
+import createStyles from "@material-ui/core/styles/createStyles";
+import withStyles, { WithStyles } from "@material-ui/core/styles/withStyles";
+import TableCell from "@material-ui/core/TableCell";
+import TableRow from "@material-ui/core/TableRow";
+import AddIcon from "@material-ui/icons/Add";
+import RemoveIcon from "@material-ui/icons/Remove";
+import classNames from "classnames";
+import React from "react";
+import { NodeInfoResponse } from "../../api";
+import { NodeCPU, WorkerCPU } from "./features/CPU";
+import { NodeDisk, WorkerDisk } from "./features/Disk";
+import { makeNodeErrors, makeWorkerErrors } from "./features/Errors";
+import { NodeHost, WorkerHost } from "./features/Host";
+import { makeNodeLogs, makeWorkerLogs } from "./features/Logs";
+import { NodeRAM, WorkerRAM } from "./features/RAM";
+import { NodeUptime, WorkerUptime } from "./features/Uptime";
+import { NodeWorkers, WorkerWorkers } from "./features/Workers";
+
+const styles = (theme: Theme) =>
+ createStyles({
+ cell: {
+ padding: theme.spacing(1),
+ textAlign: "center",
+ "&:last-child": {
+ paddingRight: theme.spacing(1)
+ }
+ },
+ expandCollapseCell: {
+ cursor: "pointer"
+ },
+ expandCollapseIcon: {
+ color: theme.palette.text.secondary,
+ fontSize: "1.5em",
+ verticalAlign: "middle"
+ }
+ });
+
+type ArrayType