RocketMQ支持丰富的监控指标,主要有:
- Broker指标:消息堆积、内存使用率、磁盘使用率、请求响应时间、消息落地耗时等。
- Producer指标:发送TPS、发送消息成功率、发送消息大小、发送消息耗时等。
- Consumer指标:消费TPS、消费消息成功率、消费消息大小、消费消息耗时等。
- Topic指标:消息堆积、消费进度等。
RocketMQ提供了多种监控 RocketMQ 集群的方式:
- 集群管理界面:RocketMQ Console 提供丰富的监控指标图表。
- JMX:RocketMQ 暴露 JMX 接口获取 broker 链路及多种指标数据。
- Prometheus:RocketMQ 支持 Prometheus metrics 接口,Prometheus 可以抓取这些指标数据。
- Grafana:我们可以通过 Prometheus 将 RocketMQ 的 metrics 数据拉入 Grafana 展示各种监控图表。
5.告警:RocketMQ 支持 webhook 方式的告警推送,我们可以通过 Prometheus + Alertmanager 来设置 RocketMQ 的告警规则。
监控 RocketMQ 主要涉及以下对象:
- org.apache.rocketmq.broker.BrokerController:Broker 的控制器,暴露 JMX 接口。
- org.apache.rocketmq.broker.BrokerStatsManager:Broker 统计信息管理器,用于统计 Broker 的各项指标数据。
- org.apache.rocketmq.broker.latency.BrokerFastFailure:Broker 快速失败检测线程,用于检测 Broker 的消息落地耗时。
- org.apache.rocketmq.broker.processor.AdminBrokerProcessor:Broker 的 Admin 请求处理器,用于 Prometheus metrics 接口。
- org.apache.rocketmq.console.service.ConsumerService:控制台的 ConsumerService,用于拉取 Consumer 的监控指标。
通过 RocketMQ 本身支持的管理界面、JMX、Prometheus metrics 接口,结合 Prometheus 和 Grafana,我们可以实现对 RocketMQ 集群的监控与告警。