Skip to main content

RocketMQ 自助诊断

本文介绍 AutoMQ Copilot for RocketMQ 专家诊断功能提供的问题模板以及相关使用流程。

本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。

问题模板

参考概述▸ ,专家诊断功能的核心模块是 RocketMQ Copilot 基于多年运维经验沉淀的一系列问题排查模板和知识库。每个问题模板涵盖了对应的相关问题排查思路,选择合适的问题模板可以快速定位线上生产问题。

RocketMQ Copilot 目前提供如下问题诊断模板:

问题模板适用范围输入信息
消息未收到/未消费- 少量极个别消息按照业务现象,没有被消费者业务逻辑正确处理
- 已经记录了未正确处理的消息 ID
- 集群
- Topic
- ConsumerGroup
- MessageId
- 问题时间范围
- 问题现象描述(可选)
消费堆积- 大量消息没有收到
- 消费者监控告警提示出现堆积和延迟
- 没有记录明确的消息 ID
- 集群
- Topic
- ConsumerGroup
- 问题时间范围
- 问题现象描述(可选)
通用问题诊断- 常规巡检希望检查某个 Topic、ConsumerGroup 状态是否有异常和风险
- 没有记录明确的消息 ID
- 不确定问题是生产方还是消费方
- 集群
- Topic
- ConsumerGroup (可选)
- 问题时间范围
- 问题现象描述(可选)

操作说明

参考概述▸ ,使用专家诊断功能主要包括信息收集、提交诊断任务、查看诊断报告并处理问题几个步骤。

提交诊断任务

  1. 登录RocketMQ Copilot,前往左侧菜单栏,点击自助诊断。
  2. 根据上述问题模板描述,结合实际问题现象,选择对应的问题模板。
  3. 输入提前收集的相关信息,点击提交诊断,等待诊断任务执行完成。

查看诊断报告详情

当诊断任务正确提交且执行完成后,用户可以查看诊断报告详情,获取排查建议。

专家诊断是根据问题模板,执行预置的一系列诊断项,通过对诊断项的结论给出可疑现象分析。诊断项是按照分组进行展示。

每个诊断项给出如下结论信息:

诊断报告明细项作用说明
诊断项结论告知用户当前诊断项的执行结果:
- 通过:诊断符合预期,用户问题大概率与本诊断项无关
- 不通过:诊断不符预期,用户问题大概率与本诊断项相关,用户应该先修复该诊断项,大概率就可以解决问题
- 未知待确认:诊断因缺少数据而无法给出定论,建议用户二次排查确认该项。
诊断项描述告知用户各诊断项的业务含义和诊断内容,方便用户二次核实确认。
诊断项数据支撑提供用户支撑当前诊断结论的数据现场,方便用户分析回溯。
诊断项建议如果诊断不通过和未知待确认,提供用户下一步的排查建议。
  1. 登录RocketMQ Copilot,前往左侧菜单栏,点击自助诊断。
  2. 通过历史诊断任务列表,找到目标的诊断任务,点击查看详情。
  3. 依次查看诊断分组中出现不通过或者未知待确认结论的分组,并基于建议去实施。

诊断项数据详情

RocketMQ 诊断支持历史数据查询,即每个诊断项的详情可以看到查询时间范围内的历史关键节点的变化情况,帮助用户找到历史出问题时间的状态快照详情。

针对历史时间轴的关键节点,主要支持如下几种类型的数据:

事件点类型业务说明
查询起点- 含义:诊断查询起点是指用户提交诊断任务的查询时间范围的起点。
- 建议:建议用户输入尽量准确的问题时间范围,以便缩小查询范围和提高准确度。
查询终点- 含义:诊断查询起点是指用户提交诊断任务的查询时间范围的终点。
- 建议:建议用户输入尽量准确的问题时间范围,以便缩小查询范围和提高准确度。
【xx诊断】异常产生点- 含义:专家诊断基于历史的系统巡检任务判断当前检查项关联的异常产生时间点。
- 建议:从该时间点往后系统一直处于异常状态,建议用户查看当前异常产生点的具体明细快照,并往后分析。
【xx诊断】异常恢复点- 含义:专家诊断基于历史的系统巡检任务判断当前检查项关联的异常恢复时间点。
- 建议:从该时间点往后系统一直处于正常状态,建议用户查看当前异常恢复点的具体明细快照,并往前分析。
采集异常(停止)- 含义:由于系统运维或者异常导致巡检任务停止运行,停止运行后则系统无法判断之后的时间范围的真实状态。
- 建议:从该时间点往后系统无法判断诊断的结果,运维人员需要结合其他信息做二次确认。
采集恢复(开始)- 含义:由于系统运维或者异常导致巡检任务恢复运行,恢复运行后则系统可以判断之后的时间范围的真实状态。
- 建议:从该时间点往前的范围,系统无法判断诊断的结果,运维人员需要结合其他信息做二次确认。