Expose Zeta worker resource snapshots
Expanded the Workers page with resource columns, a details drawer, background-aware refresh behavior, explicit unavailable states, mixed-role and IPv6 handling, and usable narrow-screen table navigation.
apache/seatunnel · #12398
Operations UI feature
SeaTunnel's Zeta Web UI now exposes worker CPU, memory, GC, thread, slot, tag, and running-job snapshots with resilient polling and responsive inspection workflows.
Problem
The Workers page displayed only four monitoring fields even though a worker-resource endpoint existed, leaving operators without the CPU, memory, thread, garbage-collection, slot, tag, and job context needed to inspect cluster members.
Approach
Consumes the existing monitoring and resource endpoints as independent snapshots, renders summary and detail views, refreshes 30 seconds after completed requests without overlap, pauses in hidden tabs, clears failed samples, and separates fixed-slot capacity from dynamic usage.
Impact and scope
- Consolidates the main worker-health and capacity signals into the operational UI without changing backend APIs, configuration, dependencies, or scheduling behavior.
- Handles partial responses, unavailable values, zero values, IPv6 addresses, and mixed Master and Worker memberships explicitly instead of masking them as ordinary data.
- Keeps long slot descriptions and action controls usable through bounded wrapping and horizontal scrolling at desktop, tablet, and 390-pixel mobile widths.
- Monitoring and resource responses are independent samples; historical metrics, task-level drill-down, and cancellation of server-side RPCs remain outside this feature.
Validation
- The frontend unit suite passed 61 tests across 11 files, including 20 manager tests, and the focused manager Cypress suite passed seven functional and responsive scenarios.
- An intentionally broken visibility-polling build failed the dedicated hidden-page assertion, demonstrating that the regression test detects overlapping background refreshes.
- The full Cypress suite still had one unchanged starter-example failure; browser coverage used synthetic REST fixtures rather than a deployed cluster.
- Production build, TypeScript checks, ESLint, formatting, and four hosted checks passed; two upstream contributors approved the final authored feature.