unbridled-41 opened a new issue, #5925:
URL: https://github.com/apache/rocketmq-dashboard/issues/5925
### Studio Version
branch: `rocketmq-studio` @ `7e7aa344` (the revision verified; the branch is
based on it)
deployed as: not required to reproduce
### Runtime Environment
Reproduced with the frontend tests (`cd web && npx vitest run
src/pages/instance/__tests__/ConsumerPage.test.tsx
src/utils/consumerGroupDiagnostics.test.ts`).
### Connected RocketMQ Cluster
Any cluster with a group whose broker consume stats cannot be read - the
provider names the case in its own comment ("No consume stats (e.g. POP-only
group without an offset table): keep zeros").
### Describe the Bug
`ConsumerGroupVO` says whether the stats read succeeded:
```java
/** Whether the provider successfully read broker-side consume stats for
this group. */
private boolean consumeStatsAvailable;
```
and the provider keeps the Java zero defaults when it did not. The console
never read that flag (`grep -rn consumeStatsAvailable web/src` -> no hits), so
such a group was presented as measured:
- 总堆积量 showed a **green 0**, and the sort key was that 0, so the group led
an ascending scan;
- the detail card showed a green 0;
- the health panel - the feature's whole point - reported **no issue at
all**, i.e. 消费组健康 with a full score.
The backend itself refuses to draw conclusions from this state:
`GroupDetailToolHandler` returns health `UNKNOWN` for it and
`ApacheRocketMqBusinessMetricsCollector` emits `CONSUMER_STATS_UNAVAILABLE`
instead of a zero.
### Steps to Reproduce
1. Open the consumer-group page for a cluster with a group whose consume
stats cannot be read (POP-only group, offline group, broker error).
2. The 总堆积量 cell reads a green 0, the detail card repeats it, and 健康诊断
reports no issue.
3. Red before the fix: `expect(diagnostics.summary.reportedLag).toBeNull()`
and the row's 不可用 marker both fail.
### What Did You Expect to See?
The backlog and health of an unmeasured group reported as unknown, like the
client-count and lag columns already do for their own sentinel.
### What Did You See Instead?
Zero backlog and a healthy verdict.
### Evidence
- `server/.../instance/group/ConsumerGroupVO.java:45-46`,
`server/.../provider/apache/RocketMQMetadataProvider.java:390,399-402,430-434`,
`web/src/pages/instance/consumer.tsx`,
`web/src/utils/consumerGroupDiagnostics.ts`.
- `cd web && npx vitest run
src/pages/instance/__tests__/ConsumerPage.test.tsx -t 'consume stats'` - the
new case fails before the fix.
### Impact
Exactly the groups whose data is missing are reported as caught up and
healthy, in the list, the sort order, the detail card and the health verdict.
### Acceptance Criteria
- The backlog of such a group renders as unavailable, sorts after measured
groups in both directions, its reported lag is null, and the diagnostics raise
a warning instead of a healthy verdict, with regression tests.
**Corresponding PR:** #ISSUEPR#
--
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]