儀表盤
更新時間 2024-11-15 09:42:00
最近更新時間: 2024-11-15 09:42:00
分享文章
應用場景
- 場景一:線上消息消費有異常,消息不能及時被處理,需要及時收到報警,并快速定位問題。
- 場景二:線上某些訂單狀態有異常,需要排查對應的消息鏈路環節是否正常發送消息。
- 場景三:需要分析消息流量變化趨勢、流量分布特點或消息體量,進而進行業務趨勢分析規劃。
- 場景四:需要查看和分析應用上下游依賴拓撲情況,進行架構升級優化或改造。
相關概念
查看儀表盤指標前,您需要了解以下涉及消息堆積的指標概念。
如下圖所示,表示指定主題的某一隊列中各消息的狀態
上圖表示指定主題的某一隊列中各消息的狀態,分布式消息服務RocketMQ將處于不同處理階段的消息數量和耗時進行統計,這些指標可直接反映隊列中消息的處理速率和堆積情況,通過觀察這些指標可初步判斷業務的消費是否異常。具體的指標含義和計算公式如下:
| 分類 | 指標 | 定義 | 計算公式 |
|---|---|---|---|
| 消息數量指標 | 處理中的消息(inflight messages) | 在消費者客戶端正在處理,但客戶端還未返回消費結果的消息。 | 最晚一條拉取消息的位點-最晚一條提交消息的位點 |
| 消息數量指標 | 已就緒的消息(ready messages) | 消息在云消息隊列 RocketMQ 版服務端已就緒,對消費者可見可被消費的消息。 | 最大消息位點-最晚一條拉取消息的位點 |
| 消息數量指標 | 消息堆積量(consumer lag) | 所有未處理完成的消息量。 | 處理中消息量+已就緒消息量 |
| 消息耗時指標 | 已就緒消息的就緒時間(ready time) | 普通消息、順序消息:消息存儲到服務端的時間。 定時/延時消息:消息定時或延時結束的時間。* 事務消息:事務提交的時間。 | 不涉及 |
| 消息耗時指標 | 已就緒消息的排隊時間(ready message queue time) | 最早一條就緒消息的就緒時間和當前時刻的時間差。該時間反映消費者拉取消息的及時性。 | 當前時間-最早一條就緒消息的就緒時間 |
| 消息耗時指標 | 消費處理滯后時間(comsumer lag time) | 最早一條未消費完成的消息的就緒時間和當前時刻的時間差。該時間反映消費者完成消息處理的及時性。 | 當前時間-最早一條未提交消息的就緒時間 |
生產者
| 指標項 | 說明 |
|---|---|
| 消息生產速率 | 統計Topic的消息生產速率和消息生產時的API調用速率。單位:* 消息速率:條/秒* API調用速率:次/秒 |
| 累計生產消息量 | 統計指定實例下生產的消息總量。單位:條。 |
消費者
| 指標項 | 說明 |
|---|---|
| 平均消費成功率 | 統計指定實例下所有消息的消費成功率。 |
| 堆積消息量(已就緒+處理中) | 統計指定實例下的消息堆積總量,包括已就緒的消息和處理中的消息。單位:條。 |
| 處理中消息量 | 統計在消費者客戶端正在處理但客戶端還未返回消費成功響應的消息的數量。單位:條。 |
| 已就緒消息量 | 統計在云消息隊列 RocketMQ 版服務端已就緒,可以被消費者消費的消息數量。指標反映還未被消費者開始處理的消息規模。單位:條。 |
| 已就緒消息排隊時間 | 統計最早一條就緒消息的就緒時間和當前時間差。該指標反映了還未被處理的消息的延遲時間大小,對于時間敏感的業務來說是非常重要的度量指標。總覽中的指標值表示指定實例下的已就緒消息排隊時間的平均值;具體圖表中的指標值表示指定Group訂閱指定某Topic下的已就緒消息排隊時長。單位:毫秒。 |
| 消息消費速率 | 統計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。單位:條。 |
儀表盤常見問題
如何理解實例的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次/秒。