RocketMQ支持哪些监控指标?如何进行监控和告警?

RocketMQ支持丰富的监控指标,主要有:

  • Broker指标:消息堆积、内存使用率、磁盘使用率、请求响应时间、消息落地耗时等。
  • Producer指标:发送TPS、发送消息成功率、发送消息大小、发送消息耗时等。
  • Consumer指标:消费TPS、消费消息成功率、消费消息大小、消费消息耗时等。
  • Topic指标:消息堆积、消费进度等。

RocketMQ提供了多种监控 RocketMQ 集群的方式:

  1. 集群管理界面:RocketMQ Console 提供丰富的监控指标图表。
  2. JMX:RocketMQ 暴露 JMX 接口获取 broker 链路及多种指标数据。
  3. Prometheus:RocketMQ 支持 Prometheus metrics 接口,Prometheus 可以抓取这些指标数据。
  4. 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 集群的监控与告警。