雲訊息佇列 RocketMQ 版支援通過CloudMonitor配置警示規則,以便您可以即時監控執行個體的運行狀態和關鍵的業務指標,並能夠及時收到異常的警示通知,實現生產環境的風險預警。
背景資訊
雲訊息佇列 RocketMQ 版提供全託管的Message Service,對於每個規格的執行個體都有明確的SLA保障,您購買執行個體後即可保證訊息收發TPS、訊息儲存等指標達到規格規定的能力。
您無需擔心執行個體效能問題,但實際生產環境中仍需要關注實際的業務消耗、業務規模等是否達到最高水位或執行個體的規格限制。雲訊息佇列 RocketMQ 版聯合阿里雲CloudMonitor提供了開箱即用且免費的監控警示服務,可協助您解決如下問題:
-
執行個體規格水位監控預警
若您實際使用的指標值超過執行個體的規格限制,雲訊息佇列 RocketMQ 版會進行強制限流。提前配置執行個體規格水位警示可以提前發現規格超限風險並及時升配,避免因限流導致的業務故障。
-
商務邏輯錯誤監控預警
您在訊息收發時可能會收到異常報錯,配置調用錯誤警示可以提前在業務反饋前發現異常,協助您提前判斷異常來源並及時修複。
-
業務效能指標監控預警
如果您的訊息鏈路有相關效能指標要求,例如RT耗時、訊息延遲等,提前配置業務指標警示可以協助您提前治理業務風險。
警示配置原則
雲訊息佇列 RocketMQ 版提供了豐富的Metric指標和警示監控項。各監控項可分為運行水位、收發效能、異常錯誤事件三類警示。
根據大量生產環境實踐經驗,建議您根據以下原則配置如下警示:
以下核心監控項僅為基礎推薦配置項,雲訊息佇列 RocketMQ 版提供了全面、豐富的監控指標項,您可以根據業務需求進行更細粒度更全面的警示配置。更多資訊,請參見監控警示。
|
RocketMQ監控警示分類 |
重要監控警示 |
最佳配置時機 |
關注人員角色 |
|
執行個體運行水位和消耗指標 |
執行個體API調用頻率 |
|
資源營運人員 |
|
訊息收發效能指標 |
|
|
|
|
訊息收發例外狀況事件 |
|
|
|
警示配置操作入口
登入雲訊息佇列 RocketMQ 版控制台,在左側導覽列單擊執行個體列表。
在頂部功能表列選擇地區,如華東1(杭州),然後在執行個體列表中,單擊目標執行個體名稱。
-
在左側導覽列單擊監控警示,然後單擊创建报警规则。
最佳實務
配置執行個體API調用頻率警示
-
背景:雲訊息佇列 RocketMQ 版每個執行個體都明確了訊息收發API調用TPS,例如,標準版執行個體支援每秒5000次API調用,若執行個體訊息收發API調用頻率超過規格限制,會導致執行個體被限流。
-
未配置風險:若未配置該監控警示,執行個體訊息收發API調用超限不會提前預警,執行個體被限流後,導致部分訊息收發請求失敗。
-
配置時機:建議執行個體建立完成後配置警示。
規則名稱設定為執行個體API調用頻率警示,指標類型選擇簡單指標,監控指標選擇執行個體 / 執行個體API調用頻率(Instance)。閾值及警示層級分為三級:緊急(Critical)通過電話+簡訊+郵件+WebHook通知,警告(Warn)通過簡訊+郵件+WebHook通知,普通(Info)通過郵件+WebHook通知。每個層級均設定為連續3個周期(1周期=1分鐘),條件為Sum >= 閾值(單位:count/s)。在緊急層級的閾值輸入框中填寫警示閾值。
-
建議閾值:建議設定為執行個體TPS峰值的70%。例如,您購買的執行個體TPS峰值為10000,則警示閾值建議設定為7000。執行個體的TPS峰值在控制台的实例详情頁面中查看。
-
警示處理:收到執行個體API調用頻率警示後,建議按照如下步驟處理:
-
在实例详情頁面中,單擊仪表盘頁簽。
-
在執行個體訊息量概覽地區查看執行個體請求次數 (生產+ 消費) 相關指標中TPS Max值的曲線,確定達到警示閾值的時間規律。
-
在訊息業務指標概覽地區查看訊息生產速率 top20 Topics (條/分鐘)、訊息消費速率 top20 GroupIDs (條/分鐘)指標,根據達到警示閾值的時間規律,找出資料異常的Topic和Group,並根據曲線分析業務變化是否合理。
-
如果業務變化異常,則應該聯絡業務方進一步分析異常原因。
-
如果業務變化正常,說明執行個體規格不足以支撐業務流量,建議立即調整執行個體規格。具體操作,請參見執行個體升配/降配。
-
配置生產/消費者每分鐘發送/接收訊息數量警示
-
背景:雲訊息佇列 RocketMQ 版支援監控Topic和Group層級的訊息收發TPS指標,通過該監控項可針對特定業務的訊息收發TPS進行預警,協助您及時瞭解業務規模。
-
未配置風險:Topic的訊息收發TPS代表業務的調用頻率,如未配置該警示,流量跌零或突發暴漲不會提前預警,有可能會產生業務預期之外的風險。
-
配置時機:建議業務上線且流量平穩後配置警示。
配置生產者每分鐘發送訊息數量警示
在設定規則描述彈窗中,填寫規則名稱為生產者每分鐘發送訊息數量警示。指標類型選擇簡單指標頁簽,監控指標選擇Producer / 生產者每分鐘發送訊息數量(Topic)。閾值及警示層級分為三級:緊急(Critical)通知方式為電話+簡訊+郵件+WebHook,警告(Warn)通知方式為簡訊+郵件+WebHook,普通(Info)通知方式為郵件+WebHook,各層級條件均為連續3個周期(1周期=1分鐘) Sum >= 閾值 count/m,根據業務需要填寫對應閾值。底部維度選擇topic。
-
建議閾值:業務側上線後根據實際平穩期流量預估警示閾值。
-
警示處理:收到訊息收發TPS警示後,建議按照如下步驟處理:
-
在Topic 管理頁面,單擊警示規則中配置的Topic名稱。
-
在Topic 详情頁面單擊仪表盘頁簽。
-
查看訊息量(條/分鐘)中生產的曲線,基於業務模型判斷曲線變化的合理性,分析是否異常。
-
配置消費者每分鐘接收訊息數量警示
在設定規則描述彈窗中,規則名稱填寫為消費者每分鐘接收訊息數量警示,指標類型選擇簡單指標,監控指標選擇Consumer / 消費者每分鐘接收訊息數量(Group)。閾值及警示層級分為緊急(Critical)、警告(Warn)、普通(Info)三級,彙總方式選擇Sum,連續3個周期(1周期=1分鐘),條件設為>=並填寫對應閾值。維度選擇groupId並指定目標消費者組ID。
-
建議閾值:業務側上線後根據實際平穩期流量預估警示閾值。
-
警示處理:收到訊息收發TPS警示後,建議按照如下步驟處理:
-
在Group 管理頁面,單擊警示規則中配置的Group ID。
-
在Group 详情頁面單擊仪表盘頁簽。
-
查看訊息生產消費速率變化趨勢 (條/分鐘)中消費的曲線,基於業務模型判斷曲線變化的合理性,分析是否存在異常。
-
配置訊息堆積量警示
訊息堆積量統計存在一定的波動性和誤差,幾十條規模的訊息堆積不建議配置為監控閾值,如果業務對少量堆積也非常敏感,建議使用消費堆積延遲時間閾值來監控。
-
背景:雲訊息佇列 RocketMQ 版支援按照ConsumerGroup粒度監控訊息堆積量,可以用來預警下遊消費堆積故障情境。
-
未配置風險:訊息堆積警示是雲訊息佇列 RocketMQ 版的典型情境和能力,但是對於部分需要即時處理訊息的情境,需要及時關注並控制未處理的訊息量,避免因為消費堆積造成業務受損。
-
配置時機:建議業務上線且流量平穩後配置警示。
在設定規則描述彈窗中,設定規則名稱為訊息堆積量警示,指標類型選擇簡單指標,監控指標選擇Consumer / 訊息堆積量(Group)。閾值及警示層級分為三檔:緊急(通知方式為電話+簡訊+郵件+WebHook)、警告(通知方式為簡訊+郵件+WebHook)、普通(通知方式為郵件+WebHook),均設定為連續3個周期(1周期=1分鐘)Sum >= 閾值,統計方式為count。維度選擇groupId並指定對應的ConsumerGroup。
-
建議閾值:業務側上線後根據可容忍的經驗評估警示閾值。
-
警示處理:收到訊息堆積量警示後,建議按照如下步驟處理:
-
在Group 管理頁面,單擊警示規則中配置的Group ID。
-
在Group 详情頁面單擊仪表盘頁簽。
-
查看堆積相關指標 (條)中堆积量的曲線,分析堆積量的變化趨勢,找到最初產生堆積的時刻。
-
基於業務的變更及應用日誌,分析初始堆積時刻的變化因素,找到堆積原因。具體消費堆積原理,請參見如何處理訊息堆積。
-
根據堆積原因,判斷是進行消費者應用擴容還是修複消費邏輯缺陷。
-
配置消費堆積延遲時間警示
消費堆積延遲時間是根據當前消費組所有未消費訊息中,最早一條堆積訊息的延遲時間計算,因此具備累積性和敏感性。收到消費堆積延遲時間警示後,您需要先判斷業務受損是少量訊息消費被卡住還是全域的消費延遲。
-
背景:雲訊息佇列 RocketMQ 版支援按照ConsumerGroup粒度監控消費堆積延遲時間,可以為消費堆積情境提供更具體的分析指標。
-
未配置風險:訊息堆積是雲訊息佇列 RocketMQ 版的典型情境和能力,但是對於部分需要即時處理訊息的情境,需要及時關注並控制堆積訊息的延時時間,避免因為消費延遲造成業務受損。
-
配置時機:建議業務上線且流量平穩後配置警示。
在設定規則描述彈窗中,規則名稱填寫訊息處理延遲時間警示,指標類型選擇簡單指標,監控指標選擇Consumer / 訊息處理延遲時間(GroupId)。閾值及警示層級支援三級:緊急(Critical)對應電話+簡訊+郵件+WebHook,警告(Warn)對應簡訊+郵件+WebHook,普通(Info)對應郵件+WebHook,每級均設定為連續3個周期(1周期=1分鐘)、最大值≥閾值(單位ms),根據業務需求填寫各層級的閾值。維度選擇對應的groupId。
-
建議閾值:業務側上線後根據可容忍的經驗評估警示閾值。
-
警示處理:收到訊息堆積量警示後,建議按照如下步驟處理:
-
在Group 管理頁面,單擊警示規則中配置的Group ID。
-
在Group 详情頁面單擊仪表盘頁簽。
-
查看堆積相關指標 (條)中堆积量的曲線,分析堆積量的變化趨勢,找到最初產生堆積的時刻。
-
基於業務的變更及應用日誌,分析初始堆積時刻的變化因素,找到堆積原因。具體消費堆積原理,請參見如何處理訊息堆積。
-
根據堆積原因,判斷是進行消費者應用擴容還是修複消費邏輯缺陷。
-
配置死信訊息警示
-
背景:雲訊息佇列 RocketMQ 版支援死信訊息,將消費失敗並超過重試次數的訊息投遞至無效信件佇列,以便您後續進行人工處理。監控進入無效信件佇列的訊息量可以協助您及時預警當前業務出現的非預期且無法判斷的異常問題。
-
未配置風險:死信訊息代表消費者無法正確處理訊息,需要消費應用進行異常處理。如果沒有配置監控忽略了死信訊息,可能造成消費業務不完整。
-
配置時機:建議業務側上線且流量平穩後配置警示。
在設定規則描述彈窗中,規則名稱填寫為死信訊息警示,指標類型選擇簡單指標,監控指標選擇Consumer / 每分鐘產生死信訊息的數量(Group)。閾值及警示層級分為三個層級:緊急(Critical)通知方式為電話+簡訊+郵件+WebHook,警告(Warn)為簡訊+郵件+WebHook,普通(Info)為郵件+WebHook;每個層級均配置為連續3個周期(1周期=1分鐘),彙總方式為Sum,條件為>=閾值,單位為count/m。維度選擇groupId,值設為對應的消費者Group ID。
配置限流次數警示
-
背景:雲訊息佇列 RocketMQ 版支援將指定執行個體觸發限流的事件作為監控項,通過對限流次數的監控,可以協助您瞭解當前業務的受損情況。
-
未配置風險:限流次數越多,說明執行個體規格超限越嚴重,應該及時升級執行個體規格。
-
配置時機:業務上線且流量平穩後。
-
執行個體級限流次數:建議執行個體建立後配置警示。
-
Topic和Group層級限流次數:建議業務上線且流量平穩後配置警示。
-
在設定規則描述彈窗中,規則名稱填寫為限流次數警示,指標類型選擇簡單指標,監控指標選擇Producer / 每分鐘(Instance)發送被限流次數。在閾值及警示層級地區,每個層級均配置為連續3個周期(1周期=1分鐘),彙總方式為Sum,條件為>=閾值(單位count/m)。緊急(Critical)層級通知方式為電話+簡訊+郵件+WebHook,警告(Warn)層級為簡訊+郵件+WebHook,普通(Info)層級為郵件+WebHook。
-
建議閾值:業務側上線後根據可容忍的經驗評估警示閾值。
-
警示處理:收到限流次數警示後,建議按照如下步驟處理:
-
在实例详情頁面中,單擊仪表盘頁簽。
-
在執行個體訊息量概覽地區查看被限流請求次數的曲線,分析限流出現的時間點和規律。
-
在訊息業務指標概覽地區查看訊息生產速率 top20 Topics (條/分鐘)指標,根據限流出現的時間點和規律找出資料異常的Topic,並查看該Topic曲線,判斷流量上漲是否符合業務預期。
-
基於以上原因分析,如果流量上漲符合預期,則進行規格升配;若不符合預期,則排查異常流量來源。
-