Skip to content

Commit de1c946

Browse files
[cueweb/docs] Document the Monitor Hosts page
- Add Monitor Hosts screenshots (CueCommander menu + page, light/dark) to the user guide - Expand the user-guide Monitor Hosts section: Columns menu, host filter; fix Memory sort note (idle ratio, not idle bytes) - Mark Monitor Hosts (initial version) as implemented in the CueCommander menu/route lists and cross-link the section - Add Monitor Hosts feature entry to the CueWeb overview (other-guides) - Add a Monitor Hosts reference subsection plus the GetHosts endpoint and /api/host/gethosts proxy route
1 parent 881f8ce commit de1c946

7 files changed

Lines changed: 41 additions & 6 deletions

File tree

docs/_docs/other-guides/cueweb.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,11 @@ CueWeb replicates the core functionality of [CueGUI](https://www.opencue.io/docs
155155
- Toggled from the checkable **Cuetopia → View Job Graph** entry (header dropdown and sidebar); the choice is persisted and synced across tabs.
156156
- When on, selecting a job in Monitor Jobs mounts the graph as a third panel under the inline Layers and Frames panels. It walks the depends in both directions (what the job depends on and what depends on the job), color-codes nodes by kind (JOB / LAYER / FRAME), rings the focus job, truncates long names with a full-name tooltip, and lets you click a node to open that job's detail page. Pan / zoom / fit controls and a "No dependencies found" empty state are included.
157157

158+
28. **Monitor Hosts (CueCommander → Monitor Hosts):**
159+
- A read-only host registry at `/hosts`, the CueWeb equivalent of CueGUI's CueCommander Monitor Hosts plugin. Reached from the CueCommander menu / sidebar entry or the dashboard hosts widget's **View hosts** link.
160+
- Sortable, filterable table with columns Name, State, Locked, NIMBY, Cores (Idle/Total), Memory (Idle/Total), and Free /mcp. Resource columns sort by their underlying numeric value, not the formatted text. Column show/hide and pagination mirror the jobs table.
161+
- Auto-refreshes every 30 seconds; a failed refresh keeps the previously loaded rows in place, and a failed first load shows an inline error with a **Retry** button. Host actions (lock/unlock, tag editing, reboot, NIMBY toggle) are out of scope for this page.
162+
158163

159164
## CueWeb's user interface
160165

docs/_docs/reference/cueweb.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,23 @@ A read-only, interactive node graph of a job's dependency tree, rendered with [R
328328

329329
![The dependency graph panel on its own](/assets/images/cueweb/cueweb_cuetopia_view_job_graph_monitor_jobs_dependency_graph_only.png)
330330

331+
### Monitor Hosts
332+
333+
A read-only host registry at `/hosts` (`cueweb/app/hosts/page.tsx`), the CueWeb equivalent of CueGUI's `MonitorHostsPlugin` / `HostMonitorTree`. Reached from **CueCommander → Monitor Hosts** (header dropdown and sidebar) or the dashboard hosts widget's **View hosts** link.
334+
335+
![Monitor Hosts entry in the CueCommander menu](/assets/images/cueweb/cueweb_cuecommander_monitor_hosts_menu.png)
336+
337+
![CueWeb Monitor Hosts page](/assets/images/cueweb/cueweb_cuecommander_monitor_hosts.png)
338+
339+
| Behavior | Description |
340+
|----------|-------------|
341+
| **Data source** | Loads via `getHosts()` (`app/utils/get_utils.ts`), which posts to the `/api/host/gethosts` proxy → `host.HostInterface/GetHosts`. `getHosts()` returns an array on success and throws on a failed request so the page can tell a real failure from an empty registry. |
342+
| **Columns** | Name, State, Locked, NIMBY, Cores (Idle/Total), Memory (Idle/Total), Free /mcp (`app/hosts/columns.tsx`). State and Locked reuse the shared `Status` badge. |
343+
| **Sorting** | Resource columns sort by their underlying numeric value, not the formatted string: Cores and Memory by idle ratio (`idleRatio`), Free /mcp by byte count. Memory / mcp arrive from the gateway as KB-in-string and are parsed/formatted by `app/hosts/host_format_utils.ts` (`kbStringToNumber`, `kbStringToHuman`). |
344+
| **Table** | Rendered by the shared `SimpleDataTable` with the `isHostsTable` flag - host-specific filter placeholder and empty-state copy, and no row context menu (read-only). Column show/hide persists to `localStorage["cueweb.hosts.columnVisibility"]`. |
345+
| **Refresh** | Auto-refreshes every 30s. A failed poll keeps previously loaded rows; a failed first load renders an inline error with a **Retry** button. |
346+
| **Scope** | Read-only. Host actions (lock/unlock, tag editing, reboot, NIMBY toggle) and server-side filtering are tracked under sibling issues and are not part of this page. |
347+
331348
### Job-finished notifications
332349

333350
| Behavior | Description |
@@ -937,10 +954,11 @@ CueWeb communicates with these REST Gateway endpoints:
937954
| `frame.FrameInterface/Retry` | Retry frame |
938955
| `frame.FrameInterface/Kill` | Kill frame |
939956
| `frame.FrameInterface/Eat` | Eat frame |
957+
| `host.HostInterface/GetHosts` | List hosts for the Monitor Hosts page |
940958

941959
### CueWeb Proxy Routes
942960

943-
The browser does not call REST Gateway directly; it goes through Next.js API proxies that attach the JWT. Comment-related routes:
961+
The browser does not call REST Gateway directly; it goes through Next.js API proxies that attach the JWT. Comment- and host-related routes:
944962

945963
| Route | Forwards to |
946964
|-------|-------------|
@@ -949,6 +967,7 @@ The browser does not call REST Gateway directly; it goes through Next.js API pro
949967
| `POST /api/job/action/addsubscriber` | `job.JobInterface/AddSubscriber` |
950968
| `POST /api/comment/action/save` | `comment.CommentInterface/Save` |
951969
| `POST /api/comment/action/delete` | `comment.CommentInterface/Delete` |
970+
| `POST /api/host/gethosts` | `host.HostInterface/GetHosts` (unwraps the gateway's double-nested `{hosts:{hosts:[...]}}` to a flat array) |
952971

953972
---
954973

@@ -1028,7 +1047,8 @@ Layout, left to right:
10281047
- Allocations (`/allocations`)
10291048
- Limits (`/limits`)
10301049
- Monitor Cue (`/monitor-cue`)
1031-
- Monitor Hosts (`/hosts`)
1050+
- Monitor Hosts (`/hosts`) - implemented; read-only host registry (see
1051+
[Monitor Hosts](#monitor-hosts)).
10321052
- Redirect (`/redirect`)
10331053
- Services (`/services`)
10341054
- Shows (`/shows`)

docs/_docs/user-guides/cueweb-user-guide.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ The screen is composed of:
133133
- **File** -> *Disable Job Interaction* (read-only safety toggle, see below).
134134
- **Cuebot Facility** -> switch between `local` · `dev` · `cloud` · `external` (the active facility is shown as a small chip on the menu trigger).
135135
- **Cuetopia** -> Monitor Jobs.
136-
- **CueCommander** -> Allocations, Limits, Monitor Cue, Monitor Hosts, Redirect, Services, Shows, Stuck Frame, Subscription Graphs, Subscriptions. Unimplemented routes 404 gracefully - they are placeholders for upcoming features.
136+
- **CueCommander** -> Allocations, Limits, Monitor Cue, **Monitor Hosts** (see [Monitor Hosts](#monitor-hosts)), Redirect, Services, Shows, Stuck Frame, Subscription Graphs, Subscriptions. The remaining unimplemented routes 404 gracefully - they are placeholders for upcoming features.
137137
- **Other** -> *Attributes* (toggles the docked Attributes panel, see below).
138138
- **Help** -> a search box that finds commands across **every** menu in CueWeb (CueGUI parity), plus Online User Guide, Make a Suggestion, and Report a Bug.
139139
- **Theme toggle**: Switch between light and dark modes (your choice persists across sessions).
@@ -910,7 +910,17 @@ When the job reaches `FINISHED`, Cuebot sends the configured notification email
910910

911911
## Monitor Hosts
912912

913-
The **Monitor Hosts** page (CueCommander → Monitor Hosts in the sidebar, or the **View hosts** link on the dashboard hosts widget) lists the render hosts registered with Cuebot. It is the CueWeb equivalent of CueGUI's CueCommander Monitor Hosts plugin, and mirrors the jobs table interactions (sortable columns, substring filter, column show/hide, pagination).
913+
The **Monitor Hosts** page (CueCommander → Monitor Hosts in the sidebar or header, or the **View hosts** link on the dashboard hosts widget) lists the render hosts registered with Cuebot. It is the CueWeb equivalent of CueGUI's CueCommander Monitor Hosts plugin, and mirrors the jobs table interactions (sortable columns, substring filter, column show/hide, pagination).
914+
915+
Open it from the **CueCommander** menu (or the matching entry in the left sidebar).
916+
917+
![Monitor Hosts entry in the CueCommander menu](/assets/images/cueweb/cueweb_cuecommander_monitor_hosts_menu.png)
918+
919+
The page renders a sortable, filterable table of every host. It follows the active theme:
920+
921+
![CueWeb Monitor Hosts page](/assets/images/cueweb/cueweb_cuecommander_monitor_hosts.png)
922+
923+
![CueWeb Monitor Hosts page in dark mode](/assets/images/cueweb/cueweb_cuecommander_monitor_hosts_dark.png)
914924

915925
### Host columns
916926

@@ -921,10 +931,10 @@ The **Monitor Hosts** page (CueCommander → Monitor Hosts in the sidebar, or
921931
| Locked | Lock state (`OPEN`, `LOCKED`, `NIMBY_LOCKED`) shown as a status badge |
922932
| NIMBY | Whether NIMBY is enabled on the host (`Yes` / `No`) |
923933
| Cores (Idle/Total) | Idle vs total cores. Sorts by the idle ratio |
924-
| Memory (Idle/Total) | Idle vs total memory, human-readable. Sorts by idle bytes |
934+
| Memory (Idle/Total) | Idle vs total memory, human-readable. Sorts by the idle ratio |
925935
| Free /mcp | Free temporary (`/mcp`) space, human-readable |
926936

927-
Numeric columns sort by their underlying value rather than the formatted text, so memory and core counts sort numerically.
937+
Numeric columns sort by their underlying value rather than the formatted text, so memory and core counts sort numerically. Use the **Columns** menu to show or hide columns - your choice persists per browser - and the **Filter hosts...** box to narrow the table by a substring of the host name.
928938

929939
### Refresh
930940

132 KB
Loading
131 KB
Loading
15.5 KB
Loading
14.3 KB
Loading

0 commit comments

Comments
 (0)