zhaohai666 opened a new issue, #10636:
URL: https://github.com/apache/rocketmq/issues/10636

   ### Before Creating the Enhancement Request
   
   - [x] I have confirmed that this should be classified as an enhancement 
rather than a bug/feature.
   
   
   ### Summary
   
   # [studio] feat: Proxy Admin Client Service and Data Models
   
   ## Background
   
   This is the fifth atomic PR in the RIP-2 (Proxy Admin Interface) series. It 
implements the client management service that provides visibility into 
connected gRPC clients, along with the data models for diagnostics and receipt 
handle tracking.
   
   ## Design Proposal
   
   ### Client Service
   
   - **ProxyAdminClientService** (interface): Defines the contract for admin 
client queries:
     - `listClients(filter)` — List connected clients with pagination and 
filtering
     - `getClientDetail(clientId)` — Get full diagnostics for a specific client
     - `getConsumeDiagnostics(group)` — Get consumer group health metrics
     - `getReceiptHandleInfo(group, topic)` — Query receipt handle status
   
   - **DefaultProxyAdminClientService** (implementation): Aggregates data from 
GrpcChannelManager, ClientActivity, and ReceiptHandleProcessor to build 
comprehensive client views
   
   ### Data Models
   
   - **ClientDetailInfo**: Full client profile — connection time, last 
activity, subscribed topics, consumption mode, channel state, pending requests
   - **ClientInstanceInfo**: Lightweight client summary for list views — ID, 
address, version, status
   - **ListClientsFilter**: Query parameters — topic filter, group filter, 
address pattern, pagination offset/limit
   
   ### Diagnostics Models
   
   - **BatchConsumeClientDiagnostics**: Batch-mode consumer health — pull 
latency, batch size distribution, lag estimate
   - **BatchConsumeGroupSummary**: Group-level aggregation — total consumers, 
cumulative lag, throughput
   - **PopReceiptHandleGroupSummary**: Pop-mode receipt handle statistics — 
active handles, expired count, renewal rate
   - **PopReceiptHandleInfo**: Individual handle detail — handle ID, topic, 
queue, acquire time, TTL, renewal count
   
   ## Scope
   
   | File | Type | Description |
   |------|------|-------------|
   | `ProxyAdminClientService.java` | New | Service interface |
   | `DefaultProxyAdminClientService.java` | New | Service implementation |
   | `ClientDetailInfo.java` | New | Client detail model |
   | `ClientInstanceInfo.java` | New | Client summary model |
   | `ListClientsFilter.java` | New | Query filter model |
   | `BatchConsumeClientDiagnostics.java` | New | Batch consumer diagnostics |
   | `BatchConsumeGroupSummary.java` | New | Group summary model |
   | `PopReceiptHandleGroupSummary.java` | New | Pop handle statistics |
   | `PopReceiptHandleInfo.java` | New | Handle detail model |
   | `DefaultProxyAdminClientServiceTest.java` | New | Integration tests (934 
lines) |
   | `DefaultProxyAdminClientServiceUnitTest.java` | New | Unit tests (405 
lines) |
   
   **Total: 11 files, +3169 lines**
   
   ## Dependencies
   
   - Depends on PR #1 (proto models) and PR #2 (service framework)
   
   ## Testing
   
   - Unit tests with mocked channel manager and client activity
   - Integration tests verifying end-to-end data aggregation
   - Filter tests: pagination, topic/group filtering, address pattern matching
   - Edge cases: no clients connected, client disconnects during query
   
   ## Branch
   
   `feature/rip-2-pr5-admin-client-service`
   
   
   ### Motivation
   
   # [studio] feat: Proxy Admin Client Service and Data Models
   
   ## Background
   
   This is the fifth atomic PR in the RIP-2 (Proxy Admin Interface) series. It 
implements the client management service that provides visibility into 
connected gRPC clients, along with the data models for diagnostics and receipt 
handle tracking.
   
   ## Design Proposal
   
   ### Client Service
   
   - **ProxyAdminClientService** (interface): Defines the contract for admin 
client queries:
     - `listClients(filter)` — List connected clients with pagination and 
filtering
     - `getClientDetail(clientId)` — Get full diagnostics for a specific client
     - `getConsumeDiagnostics(group)` — Get consumer group health metrics
     - `getReceiptHandleInfo(group, topic)` — Query receipt handle status
   
   - **DefaultProxyAdminClientService** (implementation): Aggregates data from 
GrpcChannelManager, ClientActivity, and ReceiptHandleProcessor to build 
comprehensive client views
   
   ### Data Models
   
   - **ClientDetailInfo**: Full client profile — connection time, last 
activity, subscribed topics, consumption mode, channel state, pending requests
   - **ClientInstanceInfo**: Lightweight client summary for list views — ID, 
address, version, status
   - **ListClientsFilter**: Query parameters — topic filter, group filter, 
address pattern, pagination offset/limit
   
   ### Diagnostics Models
   
   - **BatchConsumeClientDiagnostics**: Batch-mode consumer health — pull 
latency, batch size distribution, lag estimate
   - **BatchConsumeGroupSummary**: Group-level aggregation — total consumers, 
cumulative lag, throughput
   - **PopReceiptHandleGroupSummary**: Pop-mode receipt handle statistics — 
active handles, expired count, renewal rate
   - **PopReceiptHandleInfo**: Individual handle detail — handle ID, topic, 
queue, acquire time, TTL, renewal count
   
   ## Scope
   
   | File | Type | Description |
   |------|------|-------------|
   | `ProxyAdminClientService.java` | New | Service interface |
   | `DefaultProxyAdminClientService.java` | New | Service implementation |
   | `ClientDetailInfo.java` | New | Client detail model |
   | `ClientInstanceInfo.java` | New | Client summary model |
   | `ListClientsFilter.java` | New | Query filter model |
   | `BatchConsumeClientDiagnostics.java` | New | Batch consumer diagnostics |
   | `BatchConsumeGroupSummary.java` | New | Group summary model |
   | `PopReceiptHandleGroupSummary.java` | New | Pop handle statistics |
   | `PopReceiptHandleInfo.java` | New | Handle detail model |
   | `DefaultProxyAdminClientServiceTest.java` | New | Integration tests (934 
lines) |
   | `DefaultProxyAdminClientServiceUnitTest.java` | New | Unit tests (405 
lines) |
   
   **Total: 11 files, +3169 lines**
   
   ## Dependencies
   
   - Depends on PR #1 (proto models) and PR #2 (service framework)
   
   ## Testing
   
   - Unit tests with mocked channel manager and client activity
   - Integration tests verifying end-to-end data aggregation
   - Filter tests: pagination, topic/group filtering, address pattern matching
   - Edge cases: no clients connected, client disconnects during query
   
   ## Branch
   
   `feature/rip-2-pr5-admin-client-service`
   
   
   ### Describe the Solution You'd Like
   
   # [studio] feat: Proxy Admin Client Service and Data Models
   
   ## Background
   
   This is the fifth atomic PR in the RIP-2 (Proxy Admin Interface) series. It 
implements the client management service that provides visibility into 
connected gRPC clients, along with the data models for diagnostics and receipt 
handle tracking.
   
   ## Design Proposal
   
   ### Client Service
   
   - **ProxyAdminClientService** (interface): Defines the contract for admin 
client queries:
     - `listClients(filter)` — List connected clients with pagination and 
filtering
     - `getClientDetail(clientId)` — Get full diagnostics for a specific client
     - `getConsumeDiagnostics(group)` — Get consumer group health metrics
     - `getReceiptHandleInfo(group, topic)` — Query receipt handle status
   
   - **DefaultProxyAdminClientService** (implementation): Aggregates data from 
GrpcChannelManager, ClientActivity, and ReceiptHandleProcessor to build 
comprehensive client views
   
   ### Data Models
   
   - **ClientDetailInfo**: Full client profile — connection time, last 
activity, subscribed topics, consumption mode, channel state, pending requests
   - **ClientInstanceInfo**: Lightweight client summary for list views — ID, 
address, version, status
   - **ListClientsFilter**: Query parameters — topic filter, group filter, 
address pattern, pagination offset/limit
   
   ### Diagnostics Models
   
   - **BatchConsumeClientDiagnostics**: Batch-mode consumer health — pull 
latency, batch size distribution, lag estimate
   - **BatchConsumeGroupSummary**: Group-level aggregation — total consumers, 
cumulative lag, throughput
   - **PopReceiptHandleGroupSummary**: Pop-mode receipt handle statistics — 
active handles, expired count, renewal rate
   - **PopReceiptHandleInfo**: Individual handle detail — handle ID, topic, 
queue, acquire time, TTL, renewal count
   
   ## Scope
   
   | File | Type | Description |
   |------|------|-------------|
   | `ProxyAdminClientService.java` | New | Service interface |
   | `DefaultProxyAdminClientService.java` | New | Service implementation |
   | `ClientDetailInfo.java` | New | Client detail model |
   | `ClientInstanceInfo.java` | New | Client summary model |
   | `ListClientsFilter.java` | New | Query filter model |
   | `BatchConsumeClientDiagnostics.java` | New | Batch consumer diagnostics |
   | `BatchConsumeGroupSummary.java` | New | Group summary model |
   | `PopReceiptHandleGroupSummary.java` | New | Pop handle statistics |
   | `PopReceiptHandleInfo.java` | New | Handle detail model |
   | `DefaultProxyAdminClientServiceTest.java` | New | Integration tests (934 
lines) |
   | `DefaultProxyAdminClientServiceUnitTest.java` | New | Unit tests (405 
lines) |
   
   **Total: 11 files, +3169 lines**
   
   ## Dependencies
   
   - Depends on PR #1 (proto models) and PR #2 (service framework)
   
   ## Testing
   
   - Unit tests with mocked channel manager and client activity
   - Integration tests verifying end-to-end data aggregation
   - Filter tests: pagination, topic/group filtering, address pattern matching
   - Edge cases: no clients connected, client disconnects during query
   
   ## Branch
   
   `feature/rip-2-pr5-admin-client-service`
   
   
   ### Describe Alternatives You've Considered
   
   # [studio] feat: Proxy Admin Client Service and Data Models
   
   ## Background
   
   This is the fifth atomic PR in the RIP-2 (Proxy Admin Interface) series. It 
implements the client management service that provides visibility into 
connected gRPC clients, along with the data models for diagnostics and receipt 
handle tracking.
   
   ## Design Proposal
   
   ### Client Service
   
   - **ProxyAdminClientService** (interface): Defines the contract for admin 
client queries:
     - `listClients(filter)` — List connected clients with pagination and 
filtering
     - `getClientDetail(clientId)` — Get full diagnostics for a specific client
     - `getConsumeDiagnostics(group)` — Get consumer group health metrics
     - `getReceiptHandleInfo(group, topic)` — Query receipt handle status
   
   - **DefaultProxyAdminClientService** (implementation): Aggregates data from 
GrpcChannelManager, ClientActivity, and ReceiptHandleProcessor to build 
comprehensive client views
   
   ### Data Models
   
   - **ClientDetailInfo**: Full client profile — connection time, last 
activity, subscribed topics, consumption mode, channel state, pending requests
   - **ClientInstanceInfo**: Lightweight client summary for list views — ID, 
address, version, status
   - **ListClientsFilter**: Query parameters — topic filter, group filter, 
address pattern, pagination offset/limit
   
   ### Diagnostics Models
   
   - **BatchConsumeClientDiagnostics**: Batch-mode consumer health — pull 
latency, batch size distribution, lag estimate
   - **BatchConsumeGroupSummary**: Group-level aggregation — total consumers, 
cumulative lag, throughput
   - **PopReceiptHandleGroupSummary**: Pop-mode receipt handle statistics — 
active handles, expired count, renewal rate
   - **PopReceiptHandleInfo**: Individual handle detail — handle ID, topic, 
queue, acquire time, TTL, renewal count
   
   ## Scope
   
   | File | Type | Description |
   |------|------|-------------|
   | `ProxyAdminClientService.java` | New | Service interface |
   | `DefaultProxyAdminClientService.java` | New | Service implementation |
   | `ClientDetailInfo.java` | New | Client detail model |
   | `ClientInstanceInfo.java` | New | Client summary model |
   | `ListClientsFilter.java` | New | Query filter model |
   | `BatchConsumeClientDiagnostics.java` | New | Batch consumer diagnostics |
   | `BatchConsumeGroupSummary.java` | New | Group summary model |
   | `PopReceiptHandleGroupSummary.java` | New | Pop handle statistics |
   | `PopReceiptHandleInfo.java` | New | Handle detail model |
   | `DefaultProxyAdminClientServiceTest.java` | New | Integration tests (934 
lines) |
   | `DefaultProxyAdminClientServiceUnitTest.java` | New | Unit tests (405 
lines) |
   
   **Total: 11 files, +3169 lines**
   
   ## Dependencies
   
   - Depends on PR #1 (proto models) and PR #2 (service framework)
   
   ## Testing
   
   - Unit tests with mocked channel manager and client activity
   - Integration tests verifying end-to-end data aggregation
   - Filter tests: pagination, topic/group filtering, address pattern matching
   - Edge cases: no clients connected, client disconnects during query
   
   ## Branch
   
   `feature/rip-2-pr5-admin-client-service`
   
   
   ### Additional Context
   
   _No response_


-- 
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