友快網

導航選單

Gartner APM 魔力象限技術解讀——全量儲存?No! 按需儲存?YES

呼叫鏈記錄了完整的請求狀態及流轉資訊,是一座巨大的資料寶庫。但是,其龐大的資料量帶來的成本及效能問題是每個實際應用 Tracing 同學繞不開的難題。如何以最低的成本,按需記錄最有價值的鏈路及其關聯資料,是本文探討的主要話題。 核心關鍵詞是:邊緣計算 + 冷熱資料分離。 如果你正面臨全量儲存呼叫鏈成本過高,而取樣後查不到資料或圖表不準等問題,請耐心讀完本文,相信會給你帶來一些啟發。

邊緣計算,記錄更有價值的資料

邊緣計算,顧名思義就是在邊緣節點進行資料計算,趕時髦的話也可以稱之為“計算左移”。在網路頻寬受限,傳輸開銷與全域性資料熱點難以解決的背景下, 邊緣計算是尋求成本與價值平衡最優解的一種有效方法。

Tracing 領域最常用的邊緣計算就是在使用者程序內進行資料過濾和分析。而在公有云環境,使用者叢集或專有網路內部的資料加工也屬於邊緣計算,這樣可以節省大量的公網傳輸開銷,並分散全域性資料計算的壓力。

此外,從資料層面看,邊緣計算一方面可以篩選出更有價值的資料,另一方面可以透過加工提煉資料的深層價值,以最小的成本記錄最有價值的資料。

篩選更有價值的資料

鏈路資料的價值分佈是不均勻的。 據不完全統計,呼叫鏈的實際查詢率小於百萬分之一。全量儲存資料不僅會造成巨大的成本浪費,也會顯著影響整條資料鏈路的效能及穩定性。如下列舉兩種常見的篩選策略。

基於鏈路資料特徵進行呼叫鏈取樣上報(Tag-based Sampling)。 比如錯/慢呼叫全採,特定服務每秒前N次取樣,特定業務場景自定義取樣等。下圖展示了阿里雲 ARMS 自定義取樣配置頁面,使用者可以根據自身需要自由定製儲存策略,實際儲存成本通常小於原始資料的 5%。

異常場景下自動保留關聯資料現場。 我們在診斷問題根因時,除了呼叫鏈之外,還需要結合日誌、異常堆疊、本地方法耗時、記憶體快照等關聯資訊進行綜合判斷。如果每一次請求的關聯資訊全都記錄下來,大機率會造成系統的崩潰。因此, 能否透過邊緣計算自動保留異常場景下的快照現場是衡量 Tracing 產品優劣的重要標準之一。 如下圖所示,阿里雲 ARMS 產品提供了慢呼叫執行緒剖析,記憶體異常 HeapDump 等能力。

無論哪種篩選策略,其核心思想都是 透過邊緣節點的資料計算,丟棄無用或低價值資料,保留異常現場或滿足特定條件的高價值資料。 這種基於資料價值的選擇性上報策略價效比遠高於全量資料上報,未來可能會成為 Tracing 的主流趨勢。

提煉資料價值

除了資料篩選,在邊緣節點進行資料加工,比如預聚合和壓縮,同樣可以在滿足使用者需求的前提下,有效節省傳輸和儲存成本。

預聚合統計:在客戶端進行預聚合的最大好處, 就是在不損失資料精度的同時大幅減少資料上報量。 比如,對呼叫鏈進行 1% 取樣後,仍然可以提供精準的服務概覽/上下游等監控告警能力。

資料壓縮:對重複出現的長文字(如異常堆疊,SQL 語句)進行壓縮編碼,也可以有效降低網路開銷。結合非關鍵欄位模糊化處理效果更佳。

冷熱資料分離,低成本滿足個性化的後聚合分析需求

邊緣計算可以滿足大部分預聚合分析場景,但是無法滿足多樣化的後聚合分析需求,比如某個業務需要統計耗時大於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 領域的主流。全量資料上報、儲存、再分析這種傳統方案將面臨越來越大的挑戰。未來會如何,讓我們拭目以待。

推薦產品

阿里雲 ARMS —— 2021 年 Gartner APM 魔力象限中國唯一入選雲廠商

Tracing Analysis —— 相容 OpenTelemetry 規範,支援 7 種開發語言

作者:夏明(涯海)

上一篇:618狂歡購限時秒殺,華碩Mini PC驚喜登場,鉅惠超值
下一篇:在VR裝置中植入廣告,Facebook是否操之過急了?