全部產品
Search
文件中心

ApsaraMQ for RocketMQ:儀錶盤

更新時間:Sep 27, 2025

藉助於阿里雲ARMS Prometheus監控服務和Grafana的指標儲存和展示能力,雲訊息佇列 RocketMQ 版提供儀錶盤功能。該功能可協助您一站式、全方位、多維度地統計和觀測指標,進而快速瞭解業務的運行狀態。本文介紹儀錶盤的應用情境、業務背景、指標詳情、計費說明和查詢方式。

應用情境

  • 情境一:線上訊息消費有異常,訊息不能及時被處理,需要及時收到警示,並快速定位問題。

  • 情境二:線上某些訂單狀態有異常,需要排查對應的訊息鏈路環節是否正常發送訊息。

  • 情境三:需要分析訊息流程量變化趨勢、流量分布特點或訊息體量,進而進行業務趨勢分析規劃。

  • 情境四:需要查看和分析應用上下遊依賴拓撲情況,進行架構升級最佳化或改造。

業務背景

雲訊息佇列 RocketMQ 版的訊息收發流程中,隊列的堆積情況、緩衝情況以及訊息處理各環節的耗時等,會直接反映當前業務處理的效能和服務端啟動並執行狀態。因此,雲訊息佇列 RocketMQ 版的重點指標主要涉及以下業務情境。

訊息堆積情境

如下圖所示,表示指定主題的某一隊列中各訊息的狀態:

隊列訊息狀態

上圖表示指定主題的某一隊列中各訊息的狀態,雲訊息佇列 RocketMQ 版將處於不同處理階段的訊息數量和耗時進行統計,這些指標可直接反映隊列中訊息的處理速率和堆積情況,通過觀察這些指標可初步判斷業務的消費是否異常。具體的指標含義和計算公式如下:

分類

指標

定義

計算公式

訊息數量指標

處理中的訊息(inflight messages)

在消費者用戶端正在處理,但用戶端還未返回消費結果的訊息。

最晚一條拉取的訊息的位點-最晚一條提交的訊息的位點

已就緒的訊息(ready messages)

訊息在雲訊息佇列 RocketMQ 版服務端已就緒,對消費者可見可被消費的訊息。

最大訊息位點-最晚一條拉取的訊息的位點

訊息堆積量(consumer lag)

所有未處理完成的訊息量。

處理中訊息量+已就緒訊息量

訊息耗時指標

已就緒訊息的就緒時間(ready time)

  • 普通訊息、順序訊息:訊息儲存到服務端的時間。

  • 定時/延時訊息:訊息定時或延時結束的時間。

  • 事務訊息:事務提交的時間。

不涉及

已就緒訊息的排隊時間(ready message queue time)

最早一條已就緒訊息的就緒時間和當前時刻的時間差。

該時間反映消費者拉取訊息的及時性。

目前時間-最早一條已就緒訊息的就緒時間

消費處理延隔時間(comsumer lag time)

最早一條未返迴響應訊息的就緒時間和當前時刻的時間差。

該時間反映消費者完成訊息處理的及時性。

目前時間-最早一條未返迴響應訊息的就緒時間

PushConsumer消費情境

在PushConsumer類型中,訊息的即時處理能力是基於SDK內部的典型Reactor執行緒模式實現的。如下圖所示,SDK內建了一個長輪詢線程,先將訊息非同步拉取到SDK內建的緩衝隊列中,再分別提交到消費線程中,觸發監聽器執行本地消費邏輯。

pushconsumer

具體原理,請參見PushConsumer

在PushConsumer消費情境下,本地緩衝隊列相關指標如下:

  • 本地緩衝隊列中的訊息量:本地緩衝隊列中的訊息總條數。

  • 本地緩衝隊列中的訊息大小:本地緩衝隊列中所有訊息大小的總和。

  • 訊息等待處理時間:訊息暫存在本地緩衝隊列中的時間。

Metrics指標詳情

重要

所有訊息收發TPS、訊息收發次數或訊息條數的相關指標,在計算時以訊息大小4 KB和普通訊息類型為基準,在其基礎上需要乘以訊息大小倍數和進階訊息類型倍數。具體計算規則,請參見計算規格說明

Metrics指標中相關欄位說明如下:

欄位

取值

Metrics類型

  • Counter:累計型的度量指標,其數值只增不減。例如,訊息生產數量。

  • Gauge:一種既可以增加又可以減少的度量指標,其數值表示統計對象的瞬時值。例如,API調用的TPS。

  • Histogram:長條圖,用於度量指標值的分布區間。例如,訊息大小的分布情況。

Label

  • instance_id:雲訊息佇列 RocketMQ 版執行個體的ID。

  • topic:雲訊息佇列 RocketMQ 版的主題。

  • message_type:訊息類型。normal表示普通訊息;fifo表示順序訊息;transaction表示事務訊息;delay表示延時/定時訊息。

  • fifo_enable:訊息消費時服務端是否按照順序投遞。true表示順序投遞;false表示並發投遞。

  • uid:您的阿里雲主帳號ID。

  • client_id:雲訊息佇列 RocketMQ 版用戶端的ID。

  • invocation_status:訊息發送介面調用結果。success表示成功;failure表示失敗。

服務端Metrics指標

Metrics類型

Metrics name

單位

指標說明

Label

Gauge

rocketmq_instance_requests_max

count/s

執行個體每分鐘訊息收發TPS的最大值(不包含被限流的請求)。

取值規則:以1分鐘為周期,每秒鐘採樣一次,取這60次採樣的最大值。

  • uid

  • instance_id

Gauge

rocketmq_instance_requests_in_max

count/s

執行個體每分鐘訊息發送TPS的最大值(不包含被限流的請求)。

取值規則:以1分鐘為周期,每秒鐘採樣一次,取這60次採樣的最大值。

  • uid

  • instance_id

Gauge

rocketmq_instance_requests_out_max

count/s

執行個體每分鐘訊息消費TPS的最大值(不包含被限流的請求)。

取值規則:以1分鐘為周期,每秒鐘採樣一次,取這60次採樣的最大值。

  • uid

  • instance_id

Gauge

rocketmq_topic_requests_max

count/s

執行個體每分鐘向Topic發送訊息TPS的最大值(不包含被限流的請求)。

取值規則:以1分鐘為周期,每秒鐘採樣一次,取這60次採樣的最大值。

  • uid

  • instance_id

  • topic

Gauge

rocketmq_group_requests_max

count/s

執行個體中消費組每分鐘訊息消費TPS的最大值(不包含被限流的請求)。

取值規則:以1分鐘為周期,每秒鐘採樣一次,取這60次採樣的最大值。

  • uid

  • instance_id

  • consumer_group

Gauge

rocketmq_instance_requests_in_threshold

count/s

執行個體訊息發送的限流閾值。

  • uid

  • instance_id

Gauge

rocketmq_instance_requests_out_threshold

count/s

執行個體訊息消費的限流閾值。

  • uid

  • instance_id

Gauge

rocketmq_throttled_requests_in

count

訊息發送的限流次數。

  • uid

  • instance_id

  • topic

  • message_type

Gauge

rocketmq_throttled_requests_out

count

訊息消費的限流次數。

  • uid

  • instance_id

  • topic

  • fifo_enable

  • consumer_group

Gauge

rocketmq_instance_elastic_requests_max

count/s

執行個體訊息收發TPS的最大彈性值。

  • uid

  • instance_id

Counter

rocketmq_requests_in_total

count

訊息發送相關API的調用次數。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_requests_out_total

count

訊息消費相關API的調用次數。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_messages_in_total

message

生產者發送到服務端的訊息數量。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_messages_out_total

message

服務端投遞給消費者的訊息數量,其中包含消費者處理中、處理成功和處理失敗的訊息。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_throughput_in_total

byte

生產者發送到服務端的訊息輸送量。

  • uid

  • instance_id

  • topic

  • message_type

Counter

rocketmq_throughput_out_total

byte

服務端投遞給消費者的訊息輸送量,其中訊息數量包含消費者處理中、處理成功和處理失敗的訊息。

  • uid

  • instance_id

  • topic

  • consumer_group

  • fifo_enable

Counter

rocketmq_internet_throughput_out_total

byte

訊息收發所使用的公網下行流量。

  • uid

  • instance_id

  • topic

  • message_type

Histogram

rocketmq_message_size

byte

訊息大小的分布情況,發送成功時統計。

分布區間如下:

  • le_1_kb:≤1 KB

  • le_4_kb:≤4 KB

  • le_512_kb:≤512 KB

  • le_1_mb:≤1 MB

  • le_2_mb:≤2 MB

  • le_4_mb:≤4 MB

  • le_overflow:>4 MB

  • uid

  • instance_id

  • topic

  • message_type

Gauge

rocketmq_consumer_ready_messages

message

已就緒訊息量。

在服務端已就緒,可以被消費者消費的訊息數量。

指標反映還未被消費者開始處理的訊息規模。

  • uid

  • instance_id

  • topic

  • consumer_group

Gauge

rocketmq_consumer_inflight_messages

message

處理中訊息量。

在消費者用戶端正在處理,但用戶端還未返回消費結果的訊息的總量。

  • uid

  • instance_id

  • topic

  • consumer_group

Gauge

rocketmq_consumer_queueing_latency

ms

已就緒訊息排隊時間。

最早一條就緒訊息的就緒時間和目前時間差。

該時間反映消費者拉取訊息的及時性。

  • uid

  • instance_id

  • topic

  • consumer_group

Gauge

rocketmq_consumer_lag_latency

ms

消費處理延遲時間。

最早一條未消費完成的訊息的就緒時間和當前時刻的時間差。

該時間反映消費者完成訊息處理的及時性。

  • uid

  • instance_id

  • topic

  • consumer_group

Counter

rocketmq_send_to_dlq_messages

message

每分鐘轉為死信狀態的訊息量。

變成死信狀態指的是訊息達到最大重投次數後不再投遞。

這些不再投遞的訊息會根據Group的死信策略配置儲存至指定Topic或被丟棄。

  • uid

  • instance_id

  • topic

  • consumer_group

Gauge

rocketmq_storage_size

byte

執行個體所使用的儲存空間大小,包含所有檔案的大小。

  • uid

  • instance_id

生產者Metrics指標

Metrics類型

Metrics name

單位

指標說明

Label

Histogram

rocketmq_send_cost_time

ms

調用訊息發送介面成功的耗時分布情況。

分布區間如下:

  • le_1_ms

  • le_5_ms

  • le_10_ms

  • le_20_ms

  • le_50_ms

  • le_200_ms

  • le_500_ms

  • le_overflow

  • uid

  • instance_id

  • topic

  • client_id

  • invocation_status

消費者Metrics指標

Metrics類型

Metrics name

單位

指標說明

Label

Histogram

rocketmq_process_time

ms

PushConsumer的訊息處理耗時分布情況,包含處理成功和處理失敗。

rocketmq_process_time=process end time-process start time

分布區間如下:

  • le_1_ms

  • le_5_ms

  • le_10_ms

  • le_100_ms

  • le_10000_ms

  • le_60000_ms

  • le_overflow

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

  • invocation_status

Gauge

rocketmq_consumer_cached_messages

message

PushConsumer本地緩衝隊列中的訊息條數。

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

Gauge

rocketmq_consumer_cached_bytes

byte

PushConsumer本地緩衝隊列中訊息的總大小。

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

Histogram

rocketmq_await_time

ms

訊息在PushConsumer本地緩衝隊列中的排隊時間的分布情況。

rocketmq_await_time=process start time-arrival time

分布區間如下:

  • le_1_ms

  • le_5_ms

  • le_20_ms

  • le_100_ms

  • le_1000_ms

  • le_5000_ms

  • le_10000_ms

  • le_overflow

  • uid

  • instance_id

  • consumer_group

  • topic

  • client_id

計費說明

雲訊息佇列 RocketMQ 版的儀錶盤指標在阿里雲ARMS Prometheus監控服務中屬於基礎指標,基礎指標不收取費用。因此,使用儀錶盤功能不收取費用。

更多資訊,請參見指標說明隨用隨付

前提條件

  • 開通ARMS Prometheus監控服務

  • 建立服務關聯角色

    • 角色名稱:AliyunServiceRoleForOns

    • 角色策略名稱稱:AliyunServiceRolePolicyForOns

    • 許可權說明:允許雲訊息佇列 RocketMQ 版使用該角色訪問您的服務(CloudMonitor和ARMS服務)以完成監控警示和儀錶盤相關功能。

    • 具體文檔說明:服務關聯角色

查看儀錶盤

雲訊息佇列 RocketMQ 版支援通過以下入口查看儀錶盤:

  • 仪表盘頁面:支援查看執行個體所有Topic和Group的各個指標。

  • 執行個體詳情頁面:主要展示指定執行個體的生產者概覽資訊、計費相關指標以及限流相關指標。

  • Topic 详情頁面:主要展示指定Topic的生產相關指標以及生產者用戶端相關指標。

  • Group 详情頁面:主要展示指定Group的消費堆積相關指標以及消費者用戶端相關指標。

  1. 登入雲訊息佇列 RocketMQ 版控制台,在左側導覽列單擊執行個體列表

  2. 在頂部功能表列選擇地區,如華東1(杭州),然後在執行個體列表中,單擊目標執行個體名稱。

  3. 選擇以下任一方式查看儀錶盤。

    • 執行個體詳情頁面:在執行個體詳情頁單擊仪表盘頁簽。

    • 仪表盘頁面:在左側導覽列單擊仪表盘

    • Topic 详情頁面:在左側導覽列單擊Topic 管理,在Topic列表中單擊目標Topic名稱,然後在Topic 详情頁面單擊仪表盘頁簽。

    • Group 详情頁面:在左側導覽列單擊Group 管理,在Group列表中單擊目標Group名稱,然後在Group 详情頁面單擊仪表盘頁簽。

儀錶盤常見問題

如何擷取儀錶盤指標資料?

  1. 使用主帳號登入ARMS控制台

  2. 在左側導覽列單擊接入中心

  3. 接入中心頁面的搜尋文字框輸入RocketMQ,並單擊搜尋表徵圖。

  4. 在搜尋的結果中,選擇需要接入的雲端服務(如阿里雲 RocketMQ(5.0) 服務)。接入的具體操作,請參見步驟一:接入雲端服務監控資料

  5. 接入成功後,在左側導覽列單擊接入管理

  6. 接入管理頁面,單擊雲端服務地區環境頁簽。

  7. 雲端服務地區環境列表中,單擊目標環境名稱進入雲端服務環境詳情頁面。

  8. 組件管理頁簽的基本資料地區,單擊Prometheus 執行個體後的雲端服務地區。

  9. 設定頁簽上,可以擷取不同的資料訪問方式。

如何將DashBoard的指標資料接入自建Grafana?

雲訊息佇列 RocketMQ 版的所有指標資料已儲存到您的阿里雲可觀測監控 Prometheus 版中,您可以參照如何擷取儀錶盤指標資料?中的步驟,接入雲端服務並擷取環境名稱和HTTP API地址後,通過API將雲訊息佇列 RocketMQ 版的儀錶盤的指標資料接入到本地自建Grafana中。具體操作,請參見使用HTTP API地址對接Grafana或自建應用中接入Prometheus資料

如何理解執行個體的TPS Max值?

TPS Max值:以1分鐘為統計周期,每秒採樣一次,統計結果取這60個採樣值的最大值。

具體樣本如下:

假設某執行個體在1分鐘內生產60條訊息(均為普通訊息、每條4 KB大小),則該執行個體的生產速率為60條/分鐘。

  • 如果這60條訊息在第1秒發送完成,則該執行個體在這1分鐘內每秒的TPS分別為60、0、0……0。

    執行個體TPS Max值=60 TPS。

  • 如果這60條訊息在第1秒發送了40條,第2秒發送了20條,則該執行個體在這1分鐘內每秒的TPS分別為40、20、0、0……0。

    執行個體TPS Max值=40 TPS。