This is an automated email from the ASF dual-hosted git repository.
pnowojski pushed a commit to branch release-2.2
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-2.2 by this push:
new ecee52b2e73 [FLINK-39394][web] Fix job overview metrics broken when a
vertex is finished
ecee52b2e73 is described below
commit ecee52b2e739369da71984b9db04e300569eadc1
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 c03e4ad908c..8b46f079f1e 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
@@ -169,11 +169,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)));
@@ -185,7 +190,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)));