全部產品
Search
文件中心

ApsaraMQ for RabbitMQ:查詢執行個體TPS峰值最佳實務

更新時間:Jun 13, 2025

本文為您介紹如何查詢雲訊息佇列 RabbitMQ 版的執行個體TPS峰值。

背景資訊

當您實際使用的TPS流量峰值超過執行個體的TPS規格上限時,雲訊息佇列 RabbitMQ 版執行個體會被限流。

為了避免執行個體限流造成的業務影響,建議您在日常營運任務中將執行個體TPS峰值作為重點監控指標,提前預警規格超限風險,您也可以通過觀察執行個體TPS峰值的變化瞭解業務波動情況,判斷當前執行個體規格是否滿足業務需求。

查詢方式

雲訊息佇列 RabbitMQ 版支援以下幾種方式查詢執行個體TPS峰值。

查詢方式

說明

查詢時間層級

查詢資源層級

(推薦)通過CloudMonitor查詢執行個體TPS峰值並設定警示

優勢:

  • 查詢結果最大可顯示14天內的TPS峰值變化,可快速定位異常範圍。

  • 支援將執行個體TPS峰值作為監控指標設定警示。

  • 支援免費使用。

分鐘級TPS峰值

取值為1分鐘周期內,每秒鐘執行個體TPS的最大值。

執行個體層級TPS峰值

(推薦)通過執行個體詳情查詢執行個體TPS峰值

  • 優勢:

    • 支援查詢秒級TPS峰值,可精確異常範圍。

    • 支援查看具體API介面的TPS峰值。

    • 支援免費使用。

  • 不足:為避免顯示結果過多,只顯示10分鐘內的查詢結果。

秒級TPS峰值

  • 執行個體層級TPS峰值

  • 執行個體內某個API介面的TPS峰值

通過日誌查詢執行個體TPS峰值

  • 優勢:支援通過SLS分析語句查詢,適合複雜問題定位情境。

  • 不足:

    • 相較於前兩種查詢方式,操作較複雜,查詢結果不夠直觀。

    • 需要額外支付Log Service相關費用,具體計費資訊,請參見Log Service計費項目

秒級TPS峰值

執行個體層級TPS峰值

通過CloudMonitor查詢執行個體TPS峰值並設定警示

查詢執行個體TPS峰值

  1. 登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表

  2. 实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列單擊监控指标

  4. 监控指标頁面,在分組列表中選擇資源類型為Instance,並選取查詢時間範圍。

    指定執行個體TPS峰值查詢樣本如下:監控指標查詢結果

設定API TPS峰值警示

  1. 登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表

  2. 实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列單擊监控指标

  4. 监控指标頁面右上方,單擊建立警示規則

    頁面跳轉至CloudMonitor的建立警示規則面板。

  5. 設定規則描述面板中,設定警示規則,從監控指標列表選擇為執行個體 > 執行個體API請求速率峰值(每分鐘Max值)。具體操作,請參見警示服務

通過執行個體詳情查詢執行個體TPS峰值

  1. 登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表

  2. 实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。

  3. 实例详情頁面單擊TPS峰值查询頁簽。

    說明

    該方式最長可查詢15天範圍內的TPS峰值資料,因為查詢結果是秒級資料,為避免顯示資料過多,查詢結果只顯示10分鐘的資料結果。

    • 查詢執行個體層級TPS峰值:

      單擊按实例级别查询頁簽,選取查詢時間,然後單擊查詢

      按執行個體層級查詢

    • 查詢API層級TPS峰值:

      單擊按API级别查询頁簽,選取查詢時間,然後單擊查詢

      按API層級查詢

通過日誌查詢執行個體TPS峰值

具體操作,請參見查詢與分析快速指引

分析語句樣本如下:

(Action : ConnectionOpen or Action : ChannelOpen or Action: ExchangeDeclare or Action: QueueBind or Action : QueueDeclare or Action : QueueDelete or Action : ExchangeDelete or Action : QueueUnBind or Action : ExchangeBind or Action : ExchangeUnBind or Action : BasicConsume or Action : BasicReject or Action : BasicRecover or Action : SendMessage or Action : BasicAck or Action : BasicNack or Action : BasicGet ) | select from_unixtime(cast(microtime as bigint)/1000/1000) as time, COUNT(*) as count GROUP by time ORDER by time limit 90000000