The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/consumer-stats-unavailable has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
7a2334dc742194dbf3acad6b06ddb2abcbaf7f60 / unbridled-41 
<[email protected]>
fix(consumer): treat an unreadable consume-stats response as unknown, not as 
zero

ConsumerGroupVO carries consumeStatsAvailable next to the lag fields, and the
provider keeps the Java zero defaults when the read fails:

    // RocketMQMetadataProvider.enrichGroupLiveStats
    // No consume stats (e.g. POP-only group without an offset table): keep 
zeros.
    snapshot.set(new GroupLiveSnapshot(instances, onlineInstances, true, 
lagUnknown ? -1 : totalLag,
            delaySeconds, timestampAvailable));

The console read only totalLag/delaySeconds (grep: consumeStatsAvailable has no
reference under web/src, ever), so a group whose broker stats could not be read
was presented as measured: the 总堆积量 cell showed a green 0, the sort key was
that 0 (it leads an ascending scan), the detail card showed a green 0, and the
health panel - which is the feature's whole point - reported no issue at all,
i.e. 消费组健康 with a full score. The backend itself refuses to draw conclusions
from that state: GroupDetailToolHandler returns health UNKNOWN for it and
ApacheRocketMqBusinessMetricsCollector emits CONSUMER_STATS_UNAVAILABLE instead 
of
a zero.

Read the flag: the backlog of such a group renders as 不可用 in the list and the
card (through the sentinel the colour and formatter already understand), sorts
after measured groups in either direction, the diagnostics report no measured 
lag
and add a CONSUME_STATS_UNAVAILABLE warning, so the group is no longer graded
healthy.

Tests (web/):
npx vitest run src/pages/instance/__tests__/ConsumerPage.test.tsx 
src/utils/consumerGroupDiagnostics.test.ts
-> Test Files 2 passed, Tests 53 passed.
- new ConsumerPage case "reports a group whose consume stats could not be read 
as
  an unknown backlog" fails before this change (the row shows a measured 0 and 
no
  不可用) and passes after it; it also asserts the health panel and the sort order.
- new diagnostics case "reports a group whose consume stats could not be read as
  unknown instead of healthy" fails before (reportedLag 0, status healthy) and
  passes after it.
- npx eslint reports no errors; npx tsc -b passes.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37975470943

With regards,
GitHub Actions via GitBox

Reply via email to