本文介绍如何将自建 RocketMQ 接入云监控 2.0。接入组件基于 aio-exporter 的 RocketMQ 适配,通过 remoting 管控接口采集 Broker 运行时、Topic / 消费组堆积、生产与消费 TPS、在线消费者客户端等指标,支持 RocketMQ 4.3.2+(推荐 4.9.x),支持 ACK 集群(CS)与 ECS(VPC) 两种部署环境。接入后自动生成 RocketMQ 实例实体与内置大盘。
采集调度说明(v1.0-9d3c2c2+):Exporter 后台按 Task 独立调度 RPC 采集(默认开启),与 Prometheus 拉取 /metrics 解耦。表单中的 Metric 采集间隔 仅控制 Prometheus 抓取频率;各 Task 的采集周期、并发与削峰参数可单独配置,用于降低大集群对 Broker 的 CPU 冲击。
支持的中间件条件
接入前请确认目标实例满足以下条件,否则可能出现采集不到数据或指标缺失。
|
条件项 |
要求 |
|
版本 |
RocketMQ 4.3.2+(推荐 4.9.x);5.x 需运行在 remoting 模式(E2E 使用 5.3.1 验证) |
|
部署形态 |
仅支持自建 RocketMQ。阿里云云消息队列 RocketMQ 版只开放 SDK 接入点、不开放 remoting 管控接口,请改用云产品插件 |
|
采集方式 |
先连 NameServer(默认 9876)拉路由,再直连各 Broker remoting 端口(默认 10911);全部 Broker 节点均需可达 |
|
Broker 注册地址 |
Broker 以 |
|
ACL |
Broker 开启 |
|
网络连通 |
CS 环境要求 NameServer 与全部 Broker 可在所选 ACK 集群网络内连通;ECS(VPC) 环境要求托管探针交换机网段可访问上述节点 |
前提条件
-
已开通可观测监控Prometheus版。
-
接入 CS 环境:目标 ACK 集群已接入云监控 2.0,且集群状态为运行中;目标 RocketMQ 服务可在该集群网络内连通。
-
接入 ECS(VPC) 环境:已选定目标 RocketMQ 所在 ECS,并确保托管探针交换机网段可访问该 ECS。
费用说明
-
根据产生的指标数据量,在 Prometheus产品中计费。无其他费用。
接入方法
步骤一:确认 ACL(如需)
Broker 未开启 ACL(aclEnable)时可跳过本步骤。若已开启 ACL,请准备具备管控权限的 AccessKey / SecretKey,并在接入表单中填写。
阿里云云消息队列 RocketMQ 版无法使用本插件,请安装 cloud-acs-rocketmq。
步骤二:选择接入环境
本插件支持 CS 与 ECS(VPC) 两种接入环境,工作原理不同,请按 RocketMQ 实际部署位置选择:
CS(容器服务)
-
将 Exporter 安装到用户指定的目标 ACK 集群,并复用该集群已有的采集器进行指标采集。
-
观测对象为 ACK 集群。
-
网络要求:目标 RocketMQ 服务可在该集群网络内连通即可(例如集群内 Service,或集群能访问到的 VPC 内网地址)。
ECS(VPC)
-
选择目标 RocketMQ 服务部署的 ECS 机器,系统根据该 ECS 的 VPC 信息部署全托管采集器。
-
不会在 ECS 上安装任何进程。
-
观测对象为 ECS 实例。
-
网络要求:托管探针所在交换机网段需允许访问目标 ECS(安全组、ACL 等需放行)。
|
环境 |
Exporter 部署位置 |
是否在业务机上装进程 |
观测对象 |
网络通达要求 |
|
CS |
用户指定的 ACK 集群 |
否(部署在集群内,不占用业务 Pod 宿主) |
ACK 集群 |
RocketMQ 可在该集群网络内连通 |
|
ECS(VPC) |
系统按 VPC 部署的全托管采集器 |
否,不在 ECS 上安装任何进程 |
ECS 实例 |
托管探针交换机网段可访问目标 ECS |
步骤三:接入配置
-
登录云监控2.0控制台,选择目标工作空间后,在左侧导航栏单击 接入中心 ,单击 RocketMQ 开始接入。
-
选择接入环境(CS 或 ECS(VPC)),并在下拉列表中选择 观测对象 。
-
接入配置,配置完成后单击 确定 :
基础配置
配置项
是否必填
默认值
说明
RocketMQ NameServer 地址
是
-
host:port或ip:port,多个用分号;分隔云厂商 / 部署来源
否
self-hosted/rocketmq写入
provider标签。选项中不含阿里云托管版AccessKey / SecretKey(ACL)
否
空
仅 Broker 开启 ACL 时填写
Metric 采集间隔(秒)
是
30Prometheus 拉取
/metrics的间隔。开启「按 Task 独立调度采集」时不再作为后台 RPC 全量采集周期自定义标签
否
空
注入到指标上的额外标签
使用公网镜像地址
否
关闭
无法访问内网镜像仓库时开启
采集调度与并发(可选,推荐大集群按默认值使用)
配置项
是否必填
默认值
说明
按 Task 独立调度采集
否
开启
开启后按下方各 Task 独立调度后台采集;关闭则回退为单一
collect_interval(等于 Metric 采集间隔)Topic/消费组采集并发(workers)
否
1Topic / 消费组 RPC 并行度。大集群建议保持
1Broker 采集并发(broker_workers)
否
1Broker 维度(runtime / stats)并行度。大集群建议保持
1指标缓存 TTL(秒)
否
00表示自动(各 Task 间隔 × 2);填正整数则使用固定 TTL客户端指标并发(client_metric_workers)
否
10在线消费者客户端指标异步采集线程池大小
客户端指标队列长度
否
5000客户端指标异步任务队列容量
采集消费延迟(storetime)
否
开启
是否采集
rocketmq_group_get_latency_by_storetime;大集群可关闭以减轻 RPCTopic 采集间隔(毫秒)
否
0每个 Topic 处理后的 sleep,用于削峰(如
50–200)消费组采集间隔(毫秒)
否
0每个消费组之间的 sleep
Task 调度周期(仅「按 Task 独立调度采集」开启时生效)
取值支持 Go duration(如
60s、15m)或 Spring cron;填-表示禁用该 Task。配置项
默认值
说明
Task collect_topic_offset
-(禁用)Topic 位点采集;默认禁用以降低 RPC
Task collect_producer
120s生产者指标
Task collect_consumer_offset
15m消费组堆积 / 位点(较重,大集群建议 ≥15m)
Task collect_broker_stats_topic
120s按 Topic 的 Broker stats(最重 Task,可配合 Topic 采集间隔削峰)
Task collect_broker_stats
120sBroker 汇总 stats
Task collect_broker_runtime_stats
60sBroker 运行时(线程池、TPS 等)
说明大集群调参建议:保持
workers=1、broker_workers=1;优先拉长collect_broker_stats_topic/collect_consumer_offset;若 Brokerquery线程池队列持续上涨,可增大对应 Task 间隔或设置topic_sleep_millis为50–200。 -
接入成功后,可在 实体探索 查看接入的实体及相关可观测数据。
数据使用说明
实体说明
接入后,云监控定期从 rocketmq_broker_tps 等指标的标签中发现 RocketMQ 实例,并生成中间件实体:
|
维度 |
说明 |
|
域(domain) |
middleware |
|
实体类型 |
middleware.rocketmq |
|
实体过滤条件 |
|
|
观测对象(绑定实体) |
CS 环境为 |
实体字段来自采集标签,与安装次数无关:
|
字段 |
说明 |
|
instance_id |
实例标识,通常取自 NameServer / 集群相关标签 |
|
provider |
部署来源,如 |
|
region_id |
地域 |
|
env_type |
部署环境类型(CS / ECS) |
|
cluster_id |
所属集群标识 |
可在 实体探索 或 中间件洞察 应用中按上述字段检索实例。
在线消费者相关指标依赖消费者客户端在线上报,客户端全部离线时对应指标为空。
内置大盘
|
大盘名称 |
查看入口 |
说明 |
|
RocketMQ 概览(实例概览) |
实体详情页 实例概览 页签 |
UModel 大盘,随实例上下文自动绑定变量 |
|
RocketMQ 概览 / RocketMQ Overview |
Grafana 大盘列表 |
Grafana 大盘,提供中英文两套 |
核心指标
以下为实体数据集 middleware.metric.rocketmq 的完整指标清单(共 89 个),可在实体详情、大盘与告警中直接使用:
|
指标名 |
类型 |
单位 |
显示名 |
说明 |
|
rocketmq_group_diff |
gauge |
- |
消费组堆积 |
消费组消息堆积量(Broker 最大位点与消费位点之差)。 |
|
rocketmq_group_retrydiff |
gauge |
- |
消费组重试堆积 |
消费组重试 Topic 上的消息堆积量。 |
|
rocketmq_group_dlqdiff |
gauge |
- |
消费组死信堆积 |
消费组死信队列(DLQ)上的消息堆积量。 |
|
rocketmq_group_count |
gauge |
- |
消费组数量 |
消费组数量(或 exporter 上报的消费组相关计数)。 |
|
rocketmq_producer_count |
gauge |
- |
生产者实例数 |
当前 Topic/Group 下已连接的生产者实例数。 |
|
rocketmq_producer_offset |
gauge |
- |
生产位点 |
Broker 上当前 Topic 的生产(最大)位点。 |
|
rocketmq_topic_retry_offset |
gauge |
- |
重试 Topic 位点 |
Topic 重试队列的当前位点。 |
|
rocketmq_topic_dlq_offset |
gauge |
- |
死信 Topic 位点 |
Topic 死信队列的当前位点。 |
|
rocketmq_client_consume_fail_msg_count |
gauge |
- |
客户端消费失败数 |
消费客户端消费失败的消息数量。 |
|
rocketmq_client_consume_fail_msg_tps |
gauge |
次/秒 |
客户端消费失败 TPS |
消费客户端消费失败的 TPS。 |
|
rocketmq_client_consume_ok_msg_tps |
gauge |
次/秒 |
客户端消费成功 TPS |
消费客户端消费成功的 TPS。 |
|
rocketmq_client_consume_rt |
gauge |
毫秒 |
客户端消费耗时 |
客户端消费响应时间(RT,毫秒)。 |
|
rocketmq_client_consumer_pull_rt |
gauge |
毫秒 |
客户端拉取耗时 |
客户端拉取消息的响应时间(RT,毫秒)。 |
|
rocketmq_client_consumer_pull_tps |
gauge |
次/秒 |
客户端拉取 TPS |
客户端拉取消息的 TPS。 |
|
rocketmq_broker_tps |
gauge |
次/秒 |
Broker 生产 TPS |
Broker 写入(生产)消息的 TPS。 |
|
rocketmq_broker_qps |
gauge |
次/秒 |
Broker 拉取 QPS |
Broker 读取(消费拉取)消息的 QPS。 |
|
rocketmq_broker_commitlog_diff |
gauge |
- |
Broker CommitLog 差异 |
Broker 级 CommitLog 位点差,用于观察主从同步落后情况。 |
|
rocketmq_brokeruntime_pmdt_0ms |
gauge |
- |
写入耗时桶 0ms |
消息写入耗时落在 0ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_0to10ms |
gauge |
- |
写入耗时桶 0–10ms |
消息写入耗时落在 0–10ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_10to50ms |
gauge |
- |
写入耗时桶 10–50ms |
消息写入耗时落在 10–50ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_50to100ms |
gauge |
- |
写入耗时桶 50–100ms |
消息写入耗时落在 50–100ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_100to200ms |
gauge |
- |
写入耗时桶 100–200ms |
消息写入耗时落在 100–200ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_200to500ms |
gauge |
- |
写入耗时桶 200–500ms |
消息写入耗时落在 200–500ms 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_500to1s |
gauge |
- |
写入耗时桶 500ms–1s |
消息写入耗时落在 500ms–1s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_1to2s |
gauge |
- |
写入耗时桶 1–2s |
消息写入耗时落在 1–2s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_2to3s |
gauge |
- |
写入耗时桶 2–3s |
消息写入耗时落在 2–3s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_3to4s |
gauge |
- |
写入耗时桶 3–4s |
消息写入耗时落在 3–4s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_4to5s |
gauge |
- |
写入耗时桶 4–5s |
消息写入耗时落在 4–5s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_5to10s |
gauge |
- |
写入耗时桶 5–10s |
消息写入耗时落在 5–10s 桶的采样次数。 |
|
rocketmq_brokeruntime_pmdt_10stomore |
gauge |
- |
写入耗时桶 ≥10s |
消息写入耗时落在 ≥10s 桶的采样次数。 |
|
rocketmq_consumer_tps |
gauge |
次/秒 |
消费 TPS |
Broker 侧消费组拉取消息的 TPS。 |
|
rocketmq_group_consume_tps |
gauge |
次/秒 |
消费组消费 TPS |
消费组消费吞吐量(TPS)。 |
|
rocketmq_consumer_offset |
gauge |
- |
消费位点 |
消费组在 Broker 上的当前消费位点。 |
|
rocketmq_group_consume_total_offset |
gauge |
- |
消费组累计消费位点 |
消费组累计消费位点。 |
|
rocketmq_consumer_message_size |
gauge |
字节 |
消费消息大小 |
已消费消息的大小(字节)。 |
|
rocketmq_send_back_nums |
gauge |
- |
消息回退数 |
回退到 Broker 的消息数量(消费失败重试/回投)。 |
|
rocketmq_group_get_latency_by_storetime |
gauge |
毫秒 |
消费获取延迟 |
按存储时间戳计算的消费获取延迟(毫秒)。 |
|
rocketmq_producer_tps |
gauge |
次/秒 |
生产 TPS |
Topic 生产(写入)消息的 TPS。 |
|
rocketmq_producer_message_size |
gauge |
字节 |
生产消息大小 |
已生产/写入消息的大小(字节)。 |
|
rocketmq_brokeruntime_msg_put_total_today_now |
gauge |
- |
今日截至当前写入总数 |
今日截至当前已写入的消息总数。 |
|
rocketmq_brokeruntime_msg_gettotal_today_now |
gauge |
- |
今日截至当前读取总数 |
今日截至当前已读取的消息总数。 |
|
rocketmq_brokeruntime_dispatch_behind_bytes |
gauge |
字节 |
派发落后字节数 |
派发尚未追上的落后字节数(CommitLog 到 ConsumeQueue)。 |
|
rocketmq_brokeruntime_put_message_size_total |
gauge |
字节 |
写入消息总大小 |
已写入消息的总大小(字节)。 |
|
rocketmq_brokeruntime_put_message_average_size |
gauge |
字节 |
写入消息平均大小 |
写入消息的平均大小(字节)。 |
|
rocketmq_brokeruntime_query_threadpool_queue_capacity |
gauge |
- |
查询线程池队列容量 |
Broker 查询线程池队列容量。 |
|
rocketmq_brokeruntime_remain_transientstore_buffer_numbs |
gauge |
- |
剩余 TransientStore 缓冲数 |
剩余 TransientStore 缓冲区数量。 |
|
rocketmq_brokeruntime_earliest_message_timestamp |
gauge |
时间 |
最早消息时间戳 |
Broker 上保留的最早消息时间戳。 |
|
rocketmq_brokeruntime_putmessage_entire_time_max |
gauge |
毫秒 |
写入全链路最大耗时 |
消息写入全链路最大耗时(毫秒)。 |
|
rocketmq_brokeruntime_start_accept_sendrequest_time |
gauge |
时间 |
开始接受发送请求时间 |
Broker 开始接受发送请求的时间戳。 |
|
rocketmq_brokeruntime_send_threadpool_queue_size |
gauge |
- |
发送线程池队列长度 |
Broker 发送线程池队列当前长度。 |
|
rocketmq_brokeruntime_putmessage_times_total |
gauge |
- |
写入消息总次数 |
消息写入操作总次数。 |
|
rocketmq_brokeruntime_getmessage_entire_time_max |
gauge |
毫秒 |
读取全链路最大耗时 |
消息读取全链路最大耗时(毫秒)。 |
|
rocketmq_brokeruntime_pagecache_lock_time_mills |
gauge |
毫秒 |
PageCache 加锁耗时 |
PageCache 加锁耗时(毫秒)。 |
|
rocketmq_brokeruntime_commitlog_disk_ratio |
gauge |
% |
CommitLog 磁盘使用率 |
CommitLog 所在磁盘使用率。 |
|
rocketmq_brokeruntime_consumequeue_disk_ratio |
gauge |
% |
ConsumeQueue 磁盘使用率 |
ConsumeQueue 所在磁盘使用率。 |
|
rocketmq_brokeruntime_getfound_tps600 |
gauge |
次/秒 |
命中拉取 TPS(10 分钟) |
约 600 秒窗口内命中(found)拉取的 TPS。 |
|
rocketmq_brokeruntime_getfound_tps60 |
gauge |
次/秒 |
命中拉取 TPS(1 分钟) |
约 60 秒窗口内命中(found)拉取的 TPS。 |
|
rocketmq_brokeruntime_getfound_tps10 |
gauge |
次/秒 |
命中拉取 TPS(10 秒) |
约 10 秒窗口内命中(found)拉取的 TPS。 |
|
rocketmq_brokeruntime_gettotal_tps600 |
gauge |
次/秒 |
拉取总 TPS(10 分钟) |
约 600 秒窗口内拉取总 TPS。 |
|
rocketmq_brokeruntime_gettotal_tps60 |
gauge |
次/秒 |
拉取总 TPS(1 分钟) |
约 60 秒窗口内拉取总 TPS。 |
|
rocketmq_brokeruntime_gettotal_tps10 |
gauge |
次/秒 |
拉取总 TPS(10 秒) |
约 10 秒窗口内拉取总 TPS。 |
|
rocketmq_brokeruntime_gettransfered_tps600 |
gauge |
次/秒 |
传输拉取 TPS(10 分钟) |
约 600 秒窗口内传输(transferred)拉取 TPS。 |
|
rocketmq_brokeruntime_gettransfered_tps60 |
gauge |
次/秒 |
传输拉取 TPS(1 分钟) |
约 60 秒窗口内传输(transferred)拉取 TPS。 |
|
rocketmq_brokeruntime_gettransfered_tps10 |
gauge |
次/秒 |
传输拉取 TPS(10 秒) |
约 10 秒窗口内传输(transferred)拉取 TPS。 |
|
rocketmq_brokeruntime_getmiss_tps600 |
gauge |
次/秒 |
未命中拉取 TPS(10 分钟) |
约 600 秒窗口内未命中(miss)拉取 TPS。 |
|
rocketmq_brokeruntime_getmiss_tps60 |
gauge |
次/秒 |
未命中拉取 TPS(1 分钟) |
约 60 秒窗口内未命中(miss)拉取 TPS。 |
|
rocketmq_brokeruntime_getmiss_tps10 |
gauge |
次/秒 |
未命中拉取 TPS(10 秒) |
约 10 秒窗口内未命中(miss)拉取 TPS。 |
|
rocketmq_brokeruntime_put_tps600 |
gauge |
次/秒 |
写入 TPS(10 分钟) |
约 600 秒窗口内写入 TPS。 |
|
rocketmq_brokeruntime_put_tps60 |
gauge |
次/秒 |
写入 TPS(1 分钟) |
约 60 秒窗口内写入 TPS。 |
|
rocketmq_brokeruntime_put_tps10 |
gauge |
次/秒 |
写入 TPS(10 秒) |
约 10 秒窗口内写入 TPS。 |
|
rocketmq_brokeruntime_put_latency_99 |
gauge |
毫秒 |
写入延迟 P99 |
消息写入延迟的 P99(毫秒)。 |
|
rocketmq_brokeruntime_put_latency_999 |
gauge |
毫秒 |
写入延迟 P999 |
消息写入延迟的 P999(毫秒)。 |
|
rocketmq_brokeruntime_dispatch_maxbuffer |
gauge |
字节 |
派发最大缓冲 |
派发最大缓冲区大小(字节)。 |
|
rocketmq_brokeruntime_pull_threadpoolqueue_capacity |
gauge |
- |
拉取线程池队列容量 |
Broker 拉取线程池队列容量。 |
|
rocketmq_brokeruntime_send_threadpoolqueue_capacity |
gauge |
- |
发送线程池队列容量 |
Broker 发送线程池队列容量。 |
|
rocketmq_brokeruntime_pull_threadpoolqueue_size |
gauge |
- |
拉取线程池队列长度 |
Broker 拉取线程池队列当前长度。 |
|
rocketmq_brokeruntime_query_threadpoolqueue_size |
gauge |
- |
查询线程池队列长度 |
Broker 查询线程池队列当前长度。 |
|
rocketmq_brokeruntime_pull_threadpoolqueue_headwait_timemills |
gauge |
毫秒 |
拉取队列队首等待时间 |
拉取线程池队列队首等待时间(毫秒)。 |
|
rocketmq_brokeruntime_query_threadpoolqueue_headwait_timemills |
gauge |
毫秒 |
查询队列队首等待时间 |
查询线程池队列队首等待时间(毫秒)。 |
|
rocketmq_brokeruntime_send_threadpoolqueue_headwait_timemills |
gauge |
毫秒 |
发送队列队首等待时间 |
发送线程池队列队首等待时间(毫秒)。 |
|
rocketmq_brokeruntime_msg_gettotal_yesterdaymorning |
gauge |
- |
昨日早上读取累计 |
截至昨日早上的读取消息累计总数。 |
|
rocketmq_brokeruntime_msg_puttotal_yesterdaymorning |
gauge |
- |
昨日早上写入累计 |
截至昨日早上的写入消息累计总数。 |
|
rocketmq_brokeruntime_msg_gettotal_todaymorning |
gauge |
- |
今日早上读取累计 |
截至今日早上的读取消息累计总数。 |
|
rocketmq_brokeruntime_msg_puttotal_todaymorning |
gauge |
- |
今日早上写入累计 |
截至今日早上的写入消息累计总数。 |
|
rocketmq_brokeruntime_commitlogdir_capacity_free |
gauge |
字节 |
CommitLog 目录剩余容量 |
CommitLog 目录剩余可用容量(字节)。 |
|
rocketmq_brokeruntime_commitlogdir_capacity_total |
gauge |
字节 |
CommitLog 目录总容量 |
CommitLog 目录总容量(字节)。 |
|
rocketmq_brokeruntime_commitlog_maxoffset |
gauge |
- |
CommitLog 最大位点 |
Broker 上 CommitLog 最大位点。 |
|
rocketmq_brokeruntime_commitlog_minoffset |
gauge |
- |
CommitLog 最小位点 |
Broker 上 CommitLog 最小位点。 |
|
rocketmq_brokeruntime_remain_howmanydata_toflush |
gauge |
字节 |
待刷盘数据量 |
仍待刷盘的数据量(字节)。 |
除上述 MetricSet 聚合指标外,Exporter 采集的原始指标(rocketmq_*)均写入 Prometheus 存储,可直接用 PromQL 查询。
常用查询示例
# 消费组堆积
rocketmq_group_diff
# Broker 生产 TPS
rocketmq_broker_tps
# CommitLog 磁盘使用率
rocketmq_brokeruntime_commitlog_disk_ratio
告警模板
本接入组件暂未内置告警规则。可在 告警中心 基于上述指标自行配置,例如对 rocketmq_broker_tps 存活指标不等于 1、连接数 / 堆积量超阈值等场景设置告警。
存储策略说明
接入 RocketMQ 后,云监控会创建对应的存储实例用于存储可观测数据。
|
数据类型 |
默认存储位置 |
备注 |
|
指标 |
Prometheus 实例:RegionShare:{{workspaceName}}:{{regionId}} |
关联数据集 |
卸载或修改接入策略
如果期望取消或修改 RocketMQ 的接入,可以在 接入中心 的 接入管理 页,找到对应的接入策略,进行 编辑 或 删除 。删除接入策略后,Exporter 与采集配置一并移除,已写入的历史指标按存储的生命周期策略保留。