前言

rocketMQ有自己的命令,也有控制台进行监控。
监控地址:https://github.com/apache/rocketmq-externals
这个项目是个集成项目,里面含有一个console的项目。单独拿出来使用即可。

RocketMQ-Console

rocketmq的控制台监控,拿到项目编译运行就可以访问了。

  1. mvn clean package -Dmaven.test.skip=true
  2. java -jar target/rocketmq-console-ng-1.0.1.jar

消费监控报警

控制台没有附带监控功能,需要源码进行打开,在consumer.html 中打开如下代码:

  1. <button name="client" ng-click="monitor(consumerGroup.group)"
  2. class="btn btn-raised btn-sm btn-primary" type="button">{{ 'Monitor Config' | translate}}
  3. </button>

之后全局找到类MonitorTask 即可自定义监控:

  1. @Component
  2. public class MonitorTask {
  3. private Logger logger = LoggerFactory.getLogger(MonitorTask.class);
  4. @Resource
  5. private MonitorService monitorService;
  6. @Resource
  7. private ConsumerService consumerService;
  8. // @Scheduled(cron = "* * * * * ?")
  9. public void scanProblemConsumeGroup() {
  10. for (Map.Entry<String, ConsumerMonitorConfig> configEntry : monitorService.queryConsumerMonitorConfig().entrySet()) {
  11. GroupConsumeInfo consumeInfo = consumerService.queryGroup(configEntry.getKey());
  12. if (consumeInfo.getCount() < configEntry.getValue().getMinCount() || consumeInfo.getDiffTotal() > configEntry.getValue().getMaxDiffTotal()) {
  13. logger.info("op=look consumeInfo {}", JsonUtil.obj2String(consumeInfo)); // notify the alert system
  14. }
  15. }
  16. }
  17. }

DefaultMQAdminExt

对于想使用自己监控的,找到类MQAdminInstance 就有相关的监控,也可以自己使用,添加监控处理。

参考