This is an automated email from the ASF dual-hosted git repository.
pnowojski pushed a commit to branch release-2.0
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-2.0 by this push:
new b41e996ea60 [FLINK-39394][web] Fix job overview metrics broken when a
vertex is finished
b41e996ea60 is described below
commit b41e996ea609365bc8d955af4799454a68f8dec5
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 de30265a7d9..9b58b25b1d4 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
@@ -170,11 +170,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)));
@@ -186,7 +191,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)));