藉助於阿里雲ARMS Prometheus監控服務和Grafana的指標儲存和展示能力,雲訊息佇列 RocketMQ 版提供可即時進行資料統計的儀錶盤功能。該功能可協助您一站式、全方位、多維度地統計和觀測指標,進而快速瞭解業務的運行狀態。本文介紹儀錶盤的應用情境、計費說明、指標詳情和使用方法。
應用情境
情境一:線上訊息消費有異常,訊息不能及時被處理,需要及時收到警示,並快速定位問題。
情境二:線上某些訂單狀態有異常,需要排查對應的訊息鏈路環節是否正常發送訊息。
情境三:需要分析訊息流程量變化趨勢、流量分布特點或訊息體量,進而進行業務趨勢分析規劃。
情境四:需要查看和分析應用上下遊依賴拓撲情況,進行架構升級最佳化或改造。
前提條件
建立服務關聯角色
角色名稱:AliyunServiceRoleForOns
角色策略名稱稱:AliyunServiceRolePolicyForOns
許可權說明:允許雲訊息佇列 RocketMQ 版使用該角色訪問您的服務(CloudMonitor和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次/秒。