本文介紹ARMS支援的多種調用鏈取樣模式,協助您根據自身情境選擇合適的調用鏈取樣模式,從而以較低成本擷取想要的調用鏈資料。
對於絕大多數的分布式系統,不是每一條調用鏈都值得被可觀測平台記錄,因為其中包含大量重複的,低關注度的資訊。因此需要引入採樣技術降低整體可觀測成本,並過濾對使用者沒有協助的噪音。
調用鏈採樣的基本原則是優先記錄您最關心、最有可能訪問的調用鏈。ARMS提供以下幾種取樣模式:
固定採樣率
固定比例採樣就是根據TraceId順序號記錄一定比例的調用鏈資料。例如,固定比例為10%,則每10條調用鏈資料記錄1條。固定比例採樣不會導致調用鏈資料本身不完整,要麼保留整條鏈路資料,要麼丟棄整條鏈路資料。
設定固定比例採樣的操作步驟如下:
登入ARMS控制台,在左側導覽列選擇 。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
-:接入Managed Service for OpenTelemetry的應用。
- 在左側導覽列中單擊應用設定,並在右側頁面單擊自訂配置頁簽。
在採樣率設定地區設定採樣率。選擇採樣率模式為固定採樣率,在採樣率設定欄位輸入百分比的數字部分,例如輸入10代表採樣10%。
說明修改即時生效,無需重啟應用。預設為10,調大採樣率會消耗額外的系統資源,建議保持預設值。
自適應採樣
為了更進一步的降低使用成本,提高鏈路查詢體驗,阿里雲可觀測團隊推出了自適應取樣模式。與固定採樣率不同,自適應採樣通過引入多項採樣命中策略,動態決定是否對一條鏈路進行採樣,從而解決固定採樣率在小採樣率下的覆蓋度問題以及大採樣率下的成本問題。在大流量情境,以及業務流量變化比較大的情境,推薦您選擇自適應取樣模式。
自適應採樣涉及的主要命中策略包括特定介面全採樣、介面Top N採樣、小流量兜底採樣三種。
特定介面全採樣指您可以通過自訂介面名、介面前尾碼,來標記需要100%採樣的介面。對於這些介面收到的請求,會觸發整條鏈路的100%採樣。由於特定介面全採樣會造成採集資料量的大幅增加,請確保只對最重要的介面開啟,或在必要的時候臨時開啟。
介面Top N採樣使用變種LFU演算法實現,在單位時間內只對每個介面的有限條目請求進行採樣,其目的是為了保證資料擷取規模不隨介面的實際流量而線性增長。
小流量兜底採樣是指在單位時間內,每個介面都至少保證有1次採樣。這樣可以在流量比較低的時候,對每個業務介面都確保記錄最有價值的特徵資訊。
目前ARMS僅支援對全採樣介面的自訂,暫時不支援對介面Top N採樣和小流量兜底採樣的細粒度調整。
設定自適應採樣的操作步驟如下:
登入ARMS控制台,在左側導覽列選擇 。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
-:接入Managed Service for OpenTelemetry的應用。
- 在左側導覽列中單擊應用設定,並在右側頁面單擊自訂配置頁簽。
在採樣率設定地區設定採樣率。選擇採樣率模式為自適應採樣,您可以自訂需要全採樣的介面、介面首碼、介面尾碼。
說明修改即時生效,無需重啟應用。自適應採樣功能僅支援2.8.3及以上版本探針。
基礎版採樣
基礎版採樣只針對開通基礎版計費的使用者可見,包含一條免費採樣策略和多條可自訂的採樣策略。
預設採樣(免費):ARMS預設免費為您帳號下所有介面的每個探針每分鐘採集一條調用鏈。
自訂採樣策略:您可以按照自身需求,配置自訂的採樣策略。每條自訂採樣策略可以按照固定比例或者固定流量採樣,並支援選擇適用於全部介面或者指定介面。
設定自訂採樣的操作步驟如下:
登入ARMS控制台,在左側導覽列選擇 。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
-:接入Managed Service for OpenTelemetry的應用。
- 在左側導覽列中單擊應用設定,並在右側頁面單擊自訂配置頁簽。
在採樣率設定地區單擊添加用戶端採樣策略,設定以下參數後單擊儲存。
設定項
說明
策略名稱稱
自訂採樣策略名稱稱。
採樣類型和採樣值
固定比例採樣:按照設定的固定比例進行調用鏈採樣。若選擇此選項,則採樣值設定為固定比例,如10%。
流量限額:若選擇此選項,採樣值需設定每個探針在設定時間範圍內採集的調用鏈條數,如5條Trace/每個探針每1秒,表示每個探針每1秒鐘採集5條調用鏈。
適用介面
設定採樣策略生效的介面範圍,可選擇每個介面或指定介面並輸入指定的介面名稱。
說明目前每個採樣策略在選擇指定介面時,僅支援輸入一個介面名。若需對多個介面進行調用鏈採樣,則需設定多個採樣策略。
自訂採樣策略樣本:
針對/elastic/update介面,每分鐘採樣20個Trace。
針對所有介面,按照流量的20%採樣Trace。
錯慢採樣
錯慢採樣會在某次請求滿足以下特徵時,針對該次請求相關的Span進行採樣。
本次調用報錯。調用報錯的判定條件又分兩種:
一種是針對HTTP介面,狀態代碼非2xx或者3xx。
另一種是通過LocalRootSpan的埋點方法捕獲到的異常,一般是業務異常拋到了架構中的情境。
本次調用耗時超過之前相同介面調用耗時P99,需要注意,此處P99使用了分桶計算技術,可能存在一定偏差。
本次調用的內部某個方法拋出異常(4.1.x版本支援)。
需要注意,該採樣策略無法保證全鏈路的完整,命中時,僅會儲存一次調用在某個應用內的若干個Span。
補充說明
為了避免大流量情境下因為鏈路採集影響業務正常運行,ARMS對探針每秒最大鏈路採集量進行了限制,預設為100。這個保護性措施對固定採樣率和自適應採樣都是生效的,您可以通過自訂配置的限流閾值修改探針每秒最大鏈路採集量。
高於預設值會消耗額外的系統資源,建議保持預設值。
相關文檔
調用鏈採集完成後,您可以基於已儲存的全量鏈路詳細資料,自由組合篩選條件與彙總維度進行即時分析。更多資訊,請參見調用鏈分析。