簡介:在雲原生時代,充分利用邊緣節點的計算和存儲能力,結合冷熱數據分離實現高性價比的數據價值探索已經逐漸成爲 APM 領域的主流。
做者:夏明(涯海)html
調用鏈記錄了完整的請求狀態及流轉信息,是一座巨大的數據寶庫。可是,其龐大的數據量帶來的成本及性能問題是每一個實際應用 Tracing 同窗繞不開的難題。如何以最低的成本,按需記錄最有價值的鏈路及其關聯數據,是本文探討的主要話題。核心關鍵詞是:邊緣計算 + 冷熱數據分離。若是你正面臨全量存儲調用鏈成本太高,而採樣後查不到數據或圖表不許等問題,請耐心讀完本文,相信會給你帶來一些啓發。git
邊緣計算,顧名思義就是在邊緣節點進行數據計算,趕時髦的話也能夠稱之爲「計算左移」。在網絡帶寬受限,傳輸開銷與全局數據熱點難以解決的背景下,邊緣計算是尋求成本與價值平衡最優解的一種有效方法。github
Tracing 領域最經常使用的邊緣計算就是在用戶進程內進行數據過濾和分析。而在公有云環境,用戶集羣或專有網絡內部的數據加工也屬於邊緣計算,這樣能夠節省大量的公網傳輸開銷,並分散全局數據計算的壓力。網絡
此外,從數據層面看,邊緣計算一方面能夠篩選出更有價值的數據,另外一方面能夠經過加工提煉數據的深層價值,以最小的成本記錄最有價值的數據。ide
鏈路數據的價值分佈是不均勻的。據不徹底統計,調用鏈的實際查詢率小於百萬分之一。全量存儲數據不只會形成巨大的成本浪費,也會顯著影響整條數據鏈路的性能及穩定性。以下列舉兩種常見的篩選策略。性能
不管哪一種篩選策略,其核心思想都是經過邊緣節點的數據計算,丟棄無用或低價值數據,保留異常現場或知足特定條件的高價值數據。這種基於數據價值的選擇性上報策略性價比遠高於全量數據上報,將來可能會成爲 Tracing 的主流趨勢。優化
除了數據篩選,在邊緣節點進行數據加工,好比預聚合和壓縮,一樣能夠在知足用戶需求的前提下,有效節省傳輸和存儲成本。ui
邊緣計算能夠知足大部分預聚合分析場景,可是沒法知足多樣化的後聚合分析需求,好比某個業務須要統計耗時大於3秒的接口及來源分佈,這種個性化的後聚合分析規則是沒法窮舉的。而當咱們沒法預先定義分析規則時,貌似就只能採用成本極高的全量原始數據存儲。難道就沒有優化的空間麼?答案是有的,接下來咱們就介紹一種低成本解決後聚合分析問題的方案——冷熱數據分離。阿里雲
冷熱數據分離的價值基礎在於用戶的查詢行爲知足時間上的局部性原理。簡單理解就是,最近的數據最常被查詢,冷數據查詢機率較小。例如,因爲問題診斷的時效性,50% 以上的鏈路查詢分析發生在 30分鐘內,7天以後的鏈路查詢一般集中在錯慢調用鏈。理論基礎成立,接下來討論如何實現冷熱數據分離。編碼
首先,熱數據存在時效性,若是隻需記錄最近一段時間內的熱數據,對於存儲空間的要求就會降低不少。另外,在公有云環境下,不一樣用戶的數據自然具有隔離性。所以,在用戶 VPC 內部的熱數據計算和存儲方案就具有更優的性價比。
其次,冷數據的查詢具有指向性,能夠經過不一樣的採樣策略篩選出知足診斷需求的冷數據進行持久化存儲。例如錯慢採樣,特定業務場景採樣等。因爲冷數據存儲週期較長,對穩定性要求較高,能夠考慮在 Region 內統一管理。
綜上所述,熱數據存儲週期短,成本低,但能夠知足實時全量後聚合分析需求;而冷數據通過精準採樣後數據總量大幅降低,一般只有原始數據量的 1% ~10%,並能夠知足大多數場景的診斷訴求。兩相結合,實現了成本與體驗的平衡最優解。國內外領先的 APM 產品,如 ARMS、Datadog、Lightstep 均採用了冷熱數據分離的存儲方案。
鏈路明細數據包含了最完整最豐富的的調用信息,APM 領域最經常使用的服務面板、上下游依賴、應用拓撲等視圖均是基於鏈路明細數據統計得出。基於鏈路明細數據的後聚合分析能夠根據用戶個性化需求更有效的定位問題。可是,後聚合分析的最大挑戰是要基於全量數據進行統計,不然會出現樣本傾斜致使最終結論離實際相差甚遠。
阿里雲 ARMS 做爲 2021 年 Gartner APM 魔力象限中國惟一入選雲廠商,提供了 30分鐘內熱數據全量分析的能力,能夠實現各類條件組合下的過濾與聚合,以下圖所示:
全量調用鏈的持久化存儲成本很是高,而前文提到 30分鐘後調用鏈的實際查詢率不足百萬分之一,而且大多數的查詢集中在錯慢調用鏈,或知足特定業務特徵的鏈路,相信常常排查鏈路問題的同窗會有同感。所以,咱們應該只保留少許知足精準採樣規則的調用鏈,從而極大的節省冷數據持久化存儲成本。
那麼精準採樣應該如何實現呢?業界經常使用的方法主要分爲頭部採樣(Head-based Sampling)和尾部採樣(Tail-based Sampling)兩種。頭部採樣通常在客戶端 Agent 等邊緣節點進行,例如根據接口服務進行限流採樣或固定比例採樣;而尾部採樣一般基於全量熱數據進行過濾,如錯慢全採等。
最理想的採樣策略應該只存儲真正須要查詢的數據,APM 產品須要提供靈活的採樣策略配置能力與最佳實踐,用戶結合自身業務場景進行自適應的調整。
當愈來愈多的企業和應用上雲,公有云集羣規模爆發式增加,「成本」將是企業用雲的關鍵衡量因素。而在雲原生時代,充分利用邊緣節點的計算和存儲能力,結合冷熱數據分離實現高性價比的數據價值探索已經逐漸成爲 APM 領域的主流。全量數據上報、存儲、再分析這種傳統方案將面臨愈來愈大的挑戰。將來會如何,讓咱們拭目以待。
【穩定大於一切】打造國內穩定性領域知識庫,讓沒法解決的問題少一點點,讓世界的肯定性多一點點。
本文內容由阿里雲實名註冊用戶自發貢獻,版權歸原做者全部,阿里雲開發者社區不擁有其著做權,亦不承擔相應法律責任。具體規則請查看《阿里雲開發者社區用戶服務協議》和《阿里雲開發者社區知識產權保護指引》。若是您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將馬上刪除涉嫌侵權內容。