yuluo-yx opened a new pull request, #4111: URL: https://github.com/apache/rocketmq-dashboard/pull/4111
## 变更目的 Broker 列表增加只读 `Timer status`,同时展示定时服务配置和进度。例如时间轮已关闭但运行指标均为零时,明确展示关闭状态,避免将零指标误读为正常运行。入队暂停、出队暂停和 RocksDB 扫描状态可辅助定位定时消息延迟。 已检索全部 Issue/PR 标题正文中的 timerReadBehind、timerCongest、timerOffsetBehind、timerWheelEnable 和定时诊断相关词,并补充在线 `timer diagnostics` 检索,未发现同类查询入口。 ## 实现 - 新增 `GET /api/brokers/timer`,绑定所选 Apache 实例与登记的 Broker 主节点,不接受任意地址,也不回退从节点。 - 独立读取 Broker 配置及运行指标,只输出定时字段;部分失败保留另一来源结果,缺失字段不回填零。 - 指标以字符串跨 JSON 和浏览器传递,保留超过安全整数范围的精度;标明出队落后单位为秒,时间轮待处理条目包含未来消息。 - 增加只读弹窗、手动刷新、禁用状态提示、关闭取消和实例切换后的迟到结果隔离。 - 增加中文使用文档、协议边界与回滚说明,无新增依赖、数据库或配置变更。 字段依据官方 [TimerMessageStore 5.5.0](https://github.com/apache/rocketmq/blob/rocketmq-all-5.5.0/store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java) 和 [AdminBrokerProcessor 5.5.0](https://github.com/apache/rocketmq/blob/rocketmq-all-5.5.0/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java)。配置与运行指标是两次采样,RocksDB 引擎切换也会影响解释,本页面不自动判定健康状态或切换引擎。 ## 本地验证 基线 `d6dee7d7ccfcf4886f02466ec51452a6928b2cc8`,Java 21、Node 24.18.0,2026-09-08。 ```bash cd server mvn -B -ntp org.jacoco:jacoco-maven-plugin:0.8.13:prepare-agent -Dtest=BrokerTimerTest,RuntimeAdminClientResolverTest,ClusterControllerTest verify org.jacoco:jacoco-maven-plugin:0.8.13:report cd ../web npx vitest run src/api/brokerTimer.test.ts src/components/__tests__/BrokerTimerDialog.test.tsx src/pages/studio/__tests__/BrokerCluster.test.tsx npm run build ``` - 后端 59 个测试通过,包括新增 16 个定时诊断场景;Checkstyle 零违规,打包通过。 - 新服务 JaCoCo 行覆盖率 43/43、分支 26/26,接口与结果记录覆盖率 100%。 - 前端 24 个测试通过;修改文件 ESLint、TypeScript 和 Vite 构建通过。 - Playwright 在本地真实 Broker 页面验证入口、请求携带 instance-a/broker-a、关闭状态警告、`9007199254740993` 精度及滚动面板;全部 API 使用本地受控 GET 响应,非 GET 中止。 - `git diff --cached --check` 通过;10 个文件,853 行新增、1 行删除。 首次后端测试因沙箱阻止 Mockito JVM attach 失败,放行同一条本地命令后通过。浏览器拦截规则曾误匹配 Vite 源码路径,收紧到本地 /api/ 后完成页面验证。 原样上游基线已有 3 个全量后端失败及依赖漏洞,本项无新增依赖,相关验证无新增失败;不将增量验证表述为项目级全量验收。真实集群 E2E、性能、压力、容量及混沌测试未执行。 无迁移,直接部署。回滚本提交即可移除查询接口和入口,无 Broker 数据修改。提交含 `[skip ci]`,验证在本地执行。 -- 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]
