OpenTelemetry並非我們所需的英雄,以下說明它為何無法滿足我們的需求

OpenTelemetry並非我們所需的英雄,以下說明它為何無法滿足我們的需求

2024.12.11

`OpenTelemetry曾經承諾能成為統一標準,使每個人都能更輕鬆地從分散式系統收集和關聯追蹤、日誌和指標。聽起來很美好對吧?不過,這是殘酷的事實:OpenTelemetry只是令人滿意。當我將它與更深入的追蹤技術(如eBPF)相比較時,OpenTelemetry顯得臃腫、效率低落、不完整,並缺乏追蹤的關鍵組成部分。這在很大程度上要歸咎於企業對本應是精簡、社群驅動的專案的挾持。

讓我們深入探討為什麼eBPF和OpenTelemetry在這個世界上都有一席之地,但我也認為OpenTelemetry只是個輔助球員,而eBPF才是真正的MVP。

OpenTelemetry:企圖包羅萬象的萬用刀

OpenTelemetry就像我生日時收到的萬用刀:它有許多工具,但都只是普普通通。它試圖包辦一切 – 日誌、指標和追蹤,並整合數十種工具。它提供了一種標準化、廠商中立的方式來收集可觀測性資料。在充斥著分散工具和監控解決方案的世界中,這是很有價值的。但是,它廣泛的範圍也付出了代價:它臃腫、緩慢且效率低落。

那麼,為什麼OpenTelemetry會如此臃腫呢?

1. 企業介入及功能膨脹

OpenTelemetry起初是一個有著清晰重點願景的開源專案。但就像許多獲得關注的開源專案一樣,大型企業看到了機會,投入資源和功能 – 但並非出於純粹的利他主義。這些公司都有自己的議程,添加功能以確保涵蓋他們的平台、雲端服務和專有工具。隨著更多企業加入,OpenTelemetry不得不拉伸以適應所有人的需求。

一開始是簡單優雅的解決方案,現在卻變成了臃腫的怪獸。我們最終得到了一個有太多旋鈕、選項和複雜性的工具。每家公司都希望將自己的特殊需求植入專案的核心,導致功能膨脹,拖累了OpenTelemetry的效能。我們添加的功能越多,就越稀釋了該工具的重點和效率。

我見過這種情況:OTel收集器的效率低落,導致需要不合理且荒謬的擴展、資源和容量,只為了跟上微不足道的環境負載。這在任何合理的規模下都將變得難以運作和管理!

2. 效率低落:企圖包辦所有人的一切

由於OpenTelemetry試圖涵蓋所有內容,因此在任何方面都無法出類拔萃。當我使用OpenTelemetry追蹤請求時,我見證了一種效能開銷,讓我懷疑是否值得。雖然它在高層級上做得很好 – 追蹤應用程式流程或顯示可能的瓶頸 – 但它缺乏深入挖掘細節所需的精確度和深度。

這種效率低落直接源於OpenTelemetry的廣泛任務。它不僅試圖捕獲追蹤,還要同時處理指標和日誌,並與數百種其他工具和系統整合。隨著規模擴大,開銷變得更加明顯,使其難以被推薦用於對效能要求嚴格的環境。當您需要精確的實時洞見時,OpenTelemetry會讓人感覺像是拖在應用程式後面的錨。

3. 不完整:企業僅需「足夠好用」即可獲利

關鍵在於:儘管OpenTelemetry存在龐大及低效的問題,但它仍顯得不完整。這是因為大型企業更有興趣創建一個開源產品,只要「足夠好用」便可打開大門,但又不至於太好而滿足我們所有需求。如果您想獲得完整的可觀測性套件——優化性能、進階分析、順暢擴展,您將被引導使用他們專有的工具和服務。這是一種典型的誘餌交換手法。

換言之,OpenTelemetry對於基本可觀測性來說已足夠實用,但當情況變得複雜時,您通常會被推向高級企業級附加元件。這並非巧合——這是企業策略的一部分。他們僅對開源項目做出足以廣為採用的貢獻,但最好的功能則保留給付費產品。

eBPF:更勝一籌的低層追蹤工具

OpenTelemetry龐大中庸的替代方案是什麼?eBPF——我們不知不覺中需要的英雄。OpenTelemetry在較高層級運作——對應用程式和服務進行檢測,而eBPF(extended Berkeley packet filter)則在核心層級運作。它是實現實時、低開銷可觀測性的秘密武器,直接從作業系統生成見解。例如,如果您想確切知道網路延遲為何會突然升高,或是哪個程序導致效能瓶頸,eBPF都能滿足您的需求。

以下是eBPF成為真正MVP的原因:

1. 輕量且快速

與令人感覺臃腫緩慢的OpenTelemetry不同,eBPF輕量且極為高效。它不試圖做所有事情 – 它只從核心中產生原始的實時數據。eBPF允許您觀察並操控低層系統行為,從I/O操作到網路流量,而不會造成顯著的額外負擔。

在重視效能的環境中,eBPF是不二之選。它提供對系統運作行為的深入可見度,而不會像OpenTelemetry般承受額外層級和複雜度的負擔。

2. 細緻深入的洞見

eBPF提供的可見度是OpenTelemetry所無法媲美的。雖然OpenTelemetry很適合追蹤跨服務的請求,但eBPF則能提供核心層級的洞見。如果您需要知道為何應用程式消耗過多CPU或為何I/O操作變慢,eBPF允許您看到導致問題的確切系統事件。這就像是聽取天氣預報與能在後院測量氣壓、風速和濕度之間的差異。

OpenTelemetry為我們提供一萬呎高的鳥瞰視野,而eBPF則讓我們能夠放大到分子層級。

3. 尚未被企業壟斷(暫時)

eBPF仍然是一種相對小眾的工具,這意味著它尚未像OpenTelemetry那樣被企業壟斷。它是一種強大的核心層級技術,尚未被企業議程所污染。它仍在做它被設計用來做的事情:以最小的額外負擔提供對系統的深入細緻洞見。它尚未被不必要的功能所臃腫,也不試圖將我們引導至付費解決方案。

OpenTelemetry 能夠提供整體觀察,但 eBPF 則能深入探索細節

說到底,OpenTelemetry 和 eBPF 在可觀測性技術棧中都佔有一席之地。OpenTelemetry 廣受採用,採用標準化的方法,能夠在分散式系統中提供高層次的可見度,是分散式追蹤的首選解決方案,能夠呈現服務在複雜環境中互動的整體情況。對於任何試圖理解多服務架構的人而言,OpenTelemetry 提供了一張非常需要的地圖。

然而,當需要更深入、更細緻的洞見時 – 了解系統在核心層級發生的情況時 – eBPF 就不可或缺了。它的優勢在於能夠以極小的開銷獲取低層級的資料,提供對系統效能和行為的原始且詳細的可見度。它非常適合深入探索效能瓶頸、資源爭用或網路問題等高層級的遙測可能無法觀察到的情況。

這兩種工具不應被視為競爭的解決方案,而應將它們視為互補的工具。OpenTelemetry 為您提供宏觀視角,而 eBPF 則讓您能夠在需要精確故障排除時進行縮小焦點。如果您真正重視可觀測性,結合 OpenTelemetry 的簡易使用和標準化分散式追蹤,以及 eBPF 的強大功能和深度,將是全面了解您的系統的關鍵。

期待與您在核心空間相見!

相關文章