This is an automated email from the ASF dual-hosted git repository.
pnowojski pushed a commit to branch release-1.20
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.20 by this push:
new 5f2344917a2 [FLINK-39394][web] Fix job overview metrics broken when a
vertex is finished
5f2344917a2 is described below
commit 5f2344917a22e041f51c7dcb26e162bb9a1cbd6f
Author: Aleksandr Iushmanov <[email protected]>
AuthorDate: Thu Apr 2 13:59:21 2026 +0100
[FLINK-39394][web] Fix job overview metrics broken when a vertex is finished
---
.../src/app/pages/job/overview/job-overview.component.ts | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git
a/flink-runtime-web/web-dashboard/src/app/pages/job/overview/job-overview.component.ts
b/flink-runtime-web/web-dashboard/src/app/pages/job/overview/job-overview.component.ts
index 3248ab09316..0a01fb30b56 100644
---
a/flink-runtime-web/web-dashboard/src/app/pages/job/overview/job-overview.component.ts
+++
b/flink-runtime-web/web-dashboard/src/app/pages/job/overview/job-overview.component.ts
@@ -162,11 +162,16 @@ export class JobOverviewComponent implements OnInit,
OnDestroy {
map(result => {
return {
...node,
- backPressuredPercentage:
Math.min(Math.round(result.backPressuredTimeMsPerSecond.max / 10), 100),
- busyPercentage:
Math.min(Math.round(result.busyTimeMsPerSecond.max / 10), 100),
- dataSkewPercentage: result.numRecordsInPerSecond.skew
+ backPressuredPercentage: result.backPressuredTimeMsPerSecond
+ ?
Math.min(Math.round(result.backPressuredTimeMsPerSecond.max / 10), 100)
+ : NaN,
+ busyPercentage: result.busyTimeMsPerSecond
+ ? Math.min(Math.round(result.busyTimeMsPerSecond.max / 10),
100)
+ : NaN,
+ dataSkewPercentage: result.numRecordsInPerSecond?.skew ?? NaN
};
- })
+ }),
+ catchError(() => of(node))
);
})
).pipe(catchError(() => of(nodes)));
@@ -178,7 +183,8 @@ export class JobOverviewComponent implements OnInit,
OnDestroy {
return this.metricService.loadWatermarks(this.jobId, node.id).pipe(
map(result => {
return { ...node, lowWatermark: result.lowWatermark };
- })
+ }),
+ catchError(() => of(node))
);
})
).pipe(catchError(() => of(nodes)));