前言
rocketMQ有自己的命令,也有控制台进行监控。
监控地址:https://github.com/apache/rocketmq-externals
这个项目是个集成项目,里面含有一个console的项目。单独拿出来使用即可。
RocketMQ-Console
rocketmq的控制台监控,拿到项目编译运行就可以访问了。
mvn clean package -Dmaven.test.skip=true
java -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
即可自定义监控:
@Component
public class MonitorTask {
private Logger logger = LoggerFactory.getLogger(MonitorTask.class);
@Resource
private MonitorService monitorService;
@Resource
private 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
就有相关的监控,也可以自己使用,添加监控处理。