DanielLeens opened a new issue, #11666:
URL: https://github.com/apache/seatunnel/issues/11666

   ## Background
   Zeta's realtime metrics endpoints already accept a `windowMs` parameter and 
return a **time-windowed series**, not just a single instantaneous value - `GET 
/metrics/realtime/jobs/{id}/vertices?windowMs=` and `.../edges?windowMs=`. The 
job detail page already uses this: clicking a node or edge on the DAG opens a 
drawer showing a time-series table of recent points 
(`seatunnel-engine-ui/src/views/jobs/detail.tsx`).
   
   What is missing is turning that already-available series into a chart. Today 
it is a table of raw rows the user has to read by eye, scoped to whichever 
single node/edge was last clicked, with nothing kept visible once the drawer 
closes. Flink's Web UI equivalent lets a user pick one or more metrics on a 
vertex or TaskManager and see them plotted as a live, auto-refreshing line 
chart that stays up while working.
   
   ## Problem to solve
   A table of numbers that updates in place cannot show trend at a glance, and 
today's per-click, single-target drawer forces users to keep re-opening it and 
re-reading rows to tell whether something is recovering or still declining. 
This gets worse the more metrics or vertices a user needs to watch at once.
   
   ## Proposed scope
   Replace/augment the existing per-click drawer's raw time-series table with 
an actual chart, reusing the already-existing `windowMs`-parameterized realtime 
endpoints:
   - let the user pick and pin one or more metrics (for one or more 
vertices/edges) so the chart keeps updating live, instead of only showing data 
for the last-clicked single target in a transient drawer
   - render the selected metrics as a live-updating line chart over the 
existing bounded window
   - support pinning metrics from more than one vertex/edge at once for 
side-by-side comparison
   - this is primarily a UI/rendering change on top of an existing REST 
contract, not a new metrics pipeline
   
   ## Why this should be a dedicated feature
   Although the REST layer already returns windowed series data, a first-class 
multi-metric pinned chart still has real design surface:
   - how many concurrently-pinned charts a client may keep polling, and what 
that does to server load when many users each pin several metrics on a large job
   - whether this should be one shared charting component reused by #11351's 
graph and #11352's backpressure panel, instead of three separate ad hoc widgets
   - what happens to pinned charts across page navigation and job restarts
   
   ## STIP requirement before implementation
   Because this changes how many clients concurrently poll the realtime-metrics 
endpoints and introduces a shared charting contract other features may depend 
on, **the claimant should submit a STIP design first and get maintainer 
agreement before starting implementation**. The STIP should clarify:
   - client-side polling/refresh strategy for multiple concurrently-pinned 
metrics, and expected load at scale
   - the shared chart component's contract so #11351 and #11352 can reuse it 
instead of diverging
   - pinned-chart lifecycle across navigation, job restarts, and job completion
   
   ## Acceptance criteria
   - From the job detail page, a user can pin at least one metric and see it 
plotted as a live-updating chart without needing to keep the node/edge drawer 
open.
   - Multiple metrics/vertices can be compared on the same chart.
   - The feature has a documented, bounded memory/compute cost regardless of 
how many users pin charts concurrently.
   - English and Chinese docs are updated.
   
   ## Non-goals for the first version
   - long-term historical metrics storage or export (e.g. Prometheus/Grafana 
integration remains the recommended path for long-term retention)
   - alerting or threshold-based notifications on charted metrics
   - arbitrary custom/derived metric expressions in the first delivery
   
   ## Related work
   - Issue #11351
   - Issue #11352
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to