借助于阿里云ARMS Prometheus監控服務和Grafana的指標存儲和展示能力,云消息隊列 RocketMQ 版提供可實時進行數據統計的儀表盤功能。該功能可幫助您一站式、全方位、多維度地統計和觀測指標,進而快速了解業務的運行狀態。本文介紹儀表盤的應用場景、計費說明、指標詳情和使用方法。
應用場景
場景一:線上消息消費有異常,消息不能及時被處理,需要及時收到報警,并快速定位問題。
場景二:線上某些訂單狀態有異常,需要排查對應的消息鏈路環節是否正常發送消息。
場景三:需要分析消息流量變化趨勢、流量分布特點或消息體量,進而進行業務趨勢分析規劃。
場景四:需要查看和分析應用上下游依賴拓撲情況,進行架構升級優化或改造。
前提條件
創建服務關聯角色
角色名稱:AliyunServiceRoleForOns
角色策略名稱:AliyunServiceRolePolicyForOns
權限說明:允許云消息隊列 RocketMQ 版使用該角色訪問您的服務(云監控和ARMS服務)以完成監控報警和儀表盤相關功能。
具體文檔說明:服務關聯角色。
計費說明
云消息隊列 RocketMQ 版的儀表盤指標在阿里云ARMS Prometheus監控服務中屬于基礎指標,基礎指標不收取費用。因此,使用儀表盤功能不收取費用。
相關概念
查看儀表盤指標前,您需要了解以下涉及消息堆積的指標概念。
如下圖所示,表示指定主題的某一隊列中各消息的狀態:
上圖表示指定主題的某一隊列中各消息的狀態,云消息隊列 RocketMQ 版將處于不同處理階段的消息數量和耗時進行統計,這些指標可直接反映隊列中消息的處理速率和堆積情況,通過觀察這些指標可初步判斷業務的消費是否異常。具體的指標含義和計算公式如下:
分類 | 指標 | 定義 | 計算公式 |
消息數量指標 | 處理中的消息(inflight messages) | 在消費者客戶端正在處理,但客戶端還未返回消費結果的消息。 | 最晚一條拉取消息的位點-最晚一條提交消息的位點 |
已就緒的消息(ready messages) | 消息在云消息隊列 RocketMQ 版服務端已就緒,對消費者可見可被消費的消息。 | 最大消息位點-最晚一條拉取消息的位點 | |
消息堆積量(consumer lag) | 所有未處理完成的消息量。 | 處理中消息量+已就緒消息量 | |
消息耗時指標 | 已就緒消息的就緒時間(ready time) |
| 不涉及 |
已就緒消息的排隊時間(ready message queue time) | 最早一條就緒消息的就緒時間和當前時刻的時間差。 該時間反映消費者拉取消息的及時性。 | 當前時間-最早一條就緒消息的就緒時間 | |
消費處理滯后時間(comsumer lag time) | 最早一條未消費完成的消息的就緒時間和當前時刻的時間差。 該時間反映消費者完成消息處理的及時性。 | 當前時間-最早一條未提交消息的就緒時間 |
指標詳情
云消息隊列 RocketMQ 版的儀表盤提供以下指標:
生產者:查看Topic的發送消息量、發送成功率和發送耗時等指標。
消費者:查看Group訂閱指定Topic的消費量、消費成功率和消息堆積等相關指標。
實例 Top 20 概覽:查看指定實例下部分指標數據值的Top 20及其所屬的Topic或Group。
計費指標信息:查看指定實例下的消息收發TPS、API調用次數、消息平均大小等指標,可為實例計費項的估算提供參考。
所有指標項的采集周期均為1分鐘,云消息隊列 RocketMQ 版支持查詢15天內的消息數據,查詢的時間間隔最大為24小時。
生產者
指標項 | 說明 |
消息生產速率 | 統計Topic的消息生產速率和消息生產時的API調用速率。 單位:
|
消息生產速率峰值 | 統計消息生產速率的最大值。 單位:條/秒。 |
累計生產消息量 | 統計指定實例下生產的消息總量。 單位:條。 |
消息生產調用成功率 | 統計Topic消息生產的成功率。 |
消息生產調用耗時 | 統計Topic生產消息時的耗時。 單位:毫秒。 |
消費者
指標項 | 說明 |
平均消費成功率 | 統計指定實例下所有消息的消費成功率。 |
堆積消息量(已就緒+處理中) | 統計指定實例下的消息堆積總量,包括已就緒的消息和處理中的消息。 單位:條。 |
處理中消息量 | 統計在消費者客戶端正在處理但客戶端還未返回消費成功響應的消息的數量。 單位:條。 |
已就緒消息量 | 統計在云消息隊列 RocketMQ 版服務端已就緒,可以被消費者消費的消息數量。 指標反映還未被消費者開始處理的消息規模。 單位:條。 |
已就緒消息排隊時間 | 統計最早一條就緒消息的就緒時間和當前時間差。 該指標反映了還未被處理的消息的延遲時間大小,對于時間敏感的業務來說是非常重要的度量指標。 總覽中的指標值表示指定實例下的已就緒消息排隊時間的平均值;具體圖表中的指標值表示指定Group訂閱指定某Topic下的已就緒消息排隊時長。 單位:毫秒。 |
消息消費速率 | 統計Group消費消息的速率。 單位:條/秒 |
消息消費速率峰值 | 統計消息消費速率的最大值。 單位:條/秒 |
累計消費消息量 | 統計指定實例下所有消費的消息總量。 單位:條。 |
消費堆積量 | 統計Group消費消息時的消息堆積量,包括已就緒消息和處理中消息。 單位:條。 |
消息消費處理耗時 | 統計Group消費消息時,消息從開始被消費到消費完成的處理耗時。 單位:毫秒。 |
消費者本地等待耗時 | 統計Group消費消息時,消息到達消費者客戶端到開始被消費的耗時。 單位:毫秒。 |
消費成功率 | 統計消息消費的成功率。 |
消費者客戶端訪問協議占比 | 統計所有被消費的消息各協議類型消息量的占比。 |
實例Top 20概覽
指標項 | 說明 |
消息生產速率 top20 Topics | 統計消息生產速率最快的前20個Topic。 單位:條/秒。 |
消息消費速率 top20 GroupIDs | 統計消息消費速率最快的前20個Group。 單位:條/秒。 |
已就緒消息量 top20 GroupIDs | 統計已就緒消息量最多的前20個Group。 單位:條。 |
已就緒消息排隊時間 top20 GroupIDs | 統計已就緒消息排隊時間最長的前20個Group。 單位:毫秒。 |
堆積消息量(已就緒消息+處理中消息)top20 GroupIDs | 統計堆積的消息量最多的前20個Group。 單位:條。 |
處理中消息量 top20 GroupIDs | 統計處理中的消息量最多的前20個Group。 單位:條。 |
消費處理耗時 top20 GroupIDs | 統計消費處理耗時最長的前20個Group。 單位:毫秒。 |
在消費者本地等待處理耗時 top20 GroupIDs | 統計消費者本地等待耗時最長的前20個Group。 單位:毫秒。 |
消息生產調用失敗率 top20 Topics | 統計生產消息時失敗率最高的前20個Topic。 |
消息消費失敗率 top20 GroupIDs | 統計消費消息時失敗率最高的前20個Group。 |
計費指標信息
以下各計費指標項的值均包含了大消息倍數和高級特性消息倍數的計算結果。
大消息倍數:以消息大小4 KB為計量單位。例如,發送一條16 KB的消息,API調用次數計算為16 KB/4 KB=4次。
高級特性消息倍數:高級特性消息(順序消息、定時/延時消息、事務消息)的API調用次數在普通消息的基礎上以5倍倍率計算。
指標項 | 說明 |
生產 TPS 峰值 | 統計消息生產TPS的最大值。該指標項可為估算實例計費項中的TPS峰值規格提供參考。 單位:次/秒。 |
消費 TPS 峰值 | 統計消息消費TPS的最大值。該指標項可為估算實例計費項中的TPS峰值規格提供參考。 單位:次/秒。 |
TPS 峰值 | 統計消息生產TPS和消息消費TPS之和的最大值。該指標項可為估算實例計費項中的TPS峰值規格提供參考。 單位:次/秒。 |
累計API調用次數 | 統計所有的API調用次數總和。該指標項可為估算實例計費項中的API調用次數提供參考。 單位:次。 |
平均消息大小 | 統計生產的所有消息的平均大小。 單位:字節。 |
生產消費 TPS | 統計消息生產TPS和消息消費TPS之和。 單位:次/秒。 |
每天 API 調用次數 | 按一天維度累計的生產消息API和消費消息API的調用次數之和。 單位:次。 |
查看儀表盤
登錄云消息隊列 RocketMQ 版控制臺,在左側導航欄單擊實例列表。
在頂部菜單欄選擇地域,如華東1(杭州),然后在實例列表中,單擊目標實例名稱。
選擇以下任一方式查看儀表盤。
實例詳情頁面:在實例詳情頁單擊儀表盤頁簽。
儀表盤頁面:在左側導航欄單擊儀表盤。
Topic 詳情頁面:在左側導航欄單擊Topic 管理,在Topic列表中單擊目標Topic名稱,然后在Topic 詳情頁面單擊儀表盤頁簽。
Group 詳情頁面:在左側導航欄單擊Group 管理,在Group列表中單擊目標Group名稱,然后在Group 詳情頁面單擊儀表盤頁簽。
儀表盤常見問題
如何獲取儀表盤指標數據?
使用主賬號登錄ARMS控制臺。
在左側導航欄單擊接入中心。
在接入中心頁面的搜索文本框輸入
RocketMQ
,并單擊搜索圖標。在搜索的結果中,選擇需要接入的云服務(如阿里云 RocketMQ(4.0) 服務)。接入的具體操作,請參見步驟一:接入云服務監控數據。
接入成功后,在左側導航欄單擊接入管理。
在云服務區域環境列表中,單擊目標環境名稱進入云服務環境詳情頁面。
在組件管理頁簽的基本信息區域,單擊默認指標存儲后的云服務地域。
在設置頁簽上,可以獲取不同的數據訪問方式。
如何將DashBoard的指標數據接入自建Grafana?
云消息隊列 RocketMQ 版的所有指標數據已保存到您的阿里云可觀測監控 Prometheus 版中,您可以參照如何獲取儀表盤指標數據?中的步驟,接入云服務并獲取環境名稱和HTTP API地址后,通過API將云消息隊列 RocketMQ 版的儀表盤的指標數據接入到本地自建Grafana中。具體操作,請參見使用HTTP API地址對接Grafana或自建應用中接入Prometheus數據。
如何理解實例的TPS均值和TPS Max值?
TPS均值=1分鐘內總的請求次數/60秒
TPS Max值:以1分鐘為統計周期,每秒采樣一次TPS值,統計結果取這60個采樣值的最大值。
具體示例如下:
假設某實例在1分鐘內生產60條消息(均為普通消息、每條4 KB大小),則實例的生產速率是 60 條/分鐘。
實例TPS均值 = 60 次/ 60 秒 = 1 次/秒
實例TPS Max值計算如下:
如果這60條消息在第1秒發送完成,則該實例在這1分鐘內每秒的TPS分別為60、0、0......0。
實例TPS Max值=60次/秒。
如果這60條消息在第1秒發送了40條,第2秒發送了20條,則該實例在這1分鐘內每秒的TPS分別為40、20、0、0……0。
實例TPS Max值=40次/秒。