This is an automated email from the ASF dual-hosted git repository.

rmetzger pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new efb58c508a9 [FLINK-41308][runtime-web] Use nettyShuffleMemorySegments 
fields for the Netty Shuffle Buffers table (#29761)
efb58c508a9 is described below

commit efb58c508a9aedf7346b28f5c33a971d056c4a39
Author: Purushottam Sinha <[email protected]>
AuthorDate: Fri Nov 6 21:43:13 2026 +0530

    [FLINK-41308][runtime-web] Use nettyShuffleMemorySegments fields for the 
Netty Shuffle Buffers table (#29761)
    
    FLINK-36355 removed the deprecated memorySegmentsAvailable and
    memorySegmentsTotal fields from the TaskManager details REST response,
    leaving only nettyShuffleMemorySegments*. The TaskManager metrics page
    kept reading the old names, so the Netty Shuffle Buffers table has shown
    empty Available and Total cells since 2.0.
    
    Read the new fields, declare them on the Metrics interface, and cover the
    rendered counts in the component spec.
    
    Generated-by: Claude Opus 5.5
---
 .../src/app/interfaces/task-manager.ts             |  2 ++
 .../metrics/task-manager-metrics.component.html    |  4 ++--
 .../metrics/task-manager-metrics.component.spec.ts | 24 +++++++++++++++++++---
 3 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/flink-runtime-web/web-dashboard/src/app/interfaces/task-manager.ts 
b/flink-runtime-web/web-dashboard/src/app/interfaces/task-manager.ts
index 51f0705026e..b6122016c33 100644
--- a/flink-runtime-web/web-dashboard/src/app/interfaces/task-manager.ts
+++ b/flink-runtime-web/web-dashboard/src/app/interfaces/task-manager.ts
@@ -94,6 +94,8 @@ interface Metrics {
   mappedCount: number;
   mappedUsed: number;
   mappedMax: number;
+  nettyShuffleMemorySegmentsAvailable: number;
+  nettyShuffleMemorySegmentsTotal: number;
   garbageCollectors: GarbageCollectorsItem[];
 }
 
diff --git 
a/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.html
 
b/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.html
index 6c59658a39a..8b640f5279b 100644
--- 
a/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.html
+++ 
b/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.html
@@ -255,11 +255,11 @@
         <tbody>
           <tr>
             <td><strong>Available</strong></td>
-            <td>{{ taskManagerDetail?.metrics.memorySegmentsAvailable | number 
}}</td>
+            <td>{{ 
taskManagerDetail?.metrics.nettyShuffleMemorySegmentsAvailable | number }}</td>
           </tr>
           <tr>
             <td><strong>Total</strong></td>
-            <td>{{ taskManagerDetail?.metrics.memorySegmentsTotal | number 
}}</td>
+            <td>{{ taskManagerDetail?.metrics.nettyShuffleMemorySegmentsTotal 
| number }}</td>
           </tr>
         </tbody>
       </nz-table>
diff --git 
a/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.spec.ts
 
b/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.spec.ts
index 0eebdd6296b..b0f765cab4d 100644
--- 
a/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.spec.ts
+++ 
b/flink-runtime-web/web-dashboard/src/app/pages/task-manager/metrics/task-manager-metrics.component.spec.ts
@@ -21,13 +21,21 @@ import { ComponentFixture, TestBed } from 
'@angular/core/testing';
 import { ActivatedRoute } from '@angular/router';
 import { of, throwError } from 'rxjs';
 
+import { TaskManagerDetail } from '@flink-runtime-web/interfaces';
 import { StatusService, TaskManagerService } from 
'@flink-runtime-web/services';
 import { beforeEach, describe, expect, it, vi } from 'vitest';
 
 import { TaskManagerMetricsComponent } from './task-manager-metrics.component';
 
-const mockDetail = {
+const mockDetail: TaskManagerDetail = {
   id: 'tm-1',
+  path: 'pekko.tcp://flink@localhost:6122/user/rpc/taskmanager_0',
+  dataPort: 6121,
+  timeSinceLastHeartbeat: 1_700_000_000_000,
+  slotsNumber: 4,
+  freeSlots: 4,
+  assignedTasks: 0,
+  hardware: { cpuCores: 8, physicalMemory: 17_179_869_184, freeMemory: 
536_870_912, managedMemory: 536_870_912 },
   memoryConfiguration: {
     frameworkHeap: 134_217_728,
     frameworkOffHeap: 134_217_728,
@@ -53,8 +61,8 @@ const mockDetail = {
     mappedCount: 0,
     mappedUsed: 0,
     mappedMax: 0,
-    memorySegmentsAvailable: 128,
-    memorySegmentsTotal: 256,
+    nettyShuffleMemorySegmentsAvailable: 1234,
+    nettyShuffleMemorySegmentsTotal: 5678,
     garbageCollectors: []
   },
   freeResource: { cpuCores: 4, taskHeapMemory: 100, taskOffHeapMemory: 0, 
managedMemory: 200, networkMemory: 50 },
@@ -107,6 +115,16 @@ describe('TaskManagerMetricsComponent', () => {
     expect(text).toContain('Flink Memory Model');
   });
 
+  it('shows the Netty shuffle buffer counts', () => {
+    fixture.detectChanges();
+
+    const table = Array.from(element.querySelectorAll('nz-table')).find(t =>
+      t.textContent?.includes('Netty Shuffle Buffers')
+    );
+    const cells = Array.from(table?.querySelectorAll('tbody td') ?? []).map(td 
=> td.textContent?.trim());
+    expect(cells).toEqual(['Available', '1,234', 'Total', '5,678']);
+  });
+
   it('does not load metrics when the manager cannot be fetched', () => {
     loadManager.mockReturnValue(throwError(() => new Error('gone')));
 

Reply via email to