前言
rocketMQ有自己的命令,也有控制台进行监控。
监控地址:https://github.com/apache/rocketmq-externals
这个项目是个集成项目,里面含有一个console的项目。单独拿出来使用即可。
RocketMQ-Console
rocketmq的控制台监控,拿到项目编译运行就可以访问了。
mvn clean package -Dmaven.test.skip=truejava -jar target/rocketmq-console-ng-1.0.1.jar
消费监控报警
控制台没有附带监控功能,需要源码进行打开,在consumer.html 中打开如下代码:
<button name="client" ng-click="monitor(consumerGroup.group)"class="btn btn-raised btn-sm btn-primary" type="button">{{ 'Monitor Config' | translate}}</button>
之后全局找到类MonitorTask 即可自定义监控:
@Componentpublic class MonitorTask {private Logger logger = LoggerFactory.getLogger(MonitorTask.class);@Resourceprivate MonitorService monitorService;@Resourceprivate ConsumerService consumerService;// @Scheduled(cron = "* * * * * ?")public void scanProblemConsumeGroup() {for (Map.Entry<String, ConsumerMonitorConfig> configEntry : monitorService.queryConsumerMonitorConfig().entrySet()) {GroupConsumeInfo consumeInfo = consumerService.queryGroup(configEntry.getKey());if (consumeInfo.getCount() < configEntry.getValue().getMinCount() || consumeInfo.getDiffTotal() > configEntry.getValue().getMaxDiffTotal()) {logger.info("op=look consumeInfo {}", JsonUtil.obj2String(consumeInfo)); // notify the alert system}}}}
DefaultMQAdminExt
对于想使用自己监控的,找到类MQAdminInstance 就有相关的监控,也可以自己使用,添加监控处理。
