云杉網(wǎng)絡(luò)DeepFlow核心的可觀測性數(shù)據(jù)流引擎正式開源

經(jīng)過多年在混合云環(huán)境下的耕耘,云杉網(wǎng)絡(luò)自主研發(fā)的DeepFlow可觀測性平臺得到了多家企業(yè)客戶的認(rèn)可,并在金融、電信、能源等行業(yè)得到了廣泛的應(yīng)用。今天正式宣布開源DeepFlow核心的可觀測性數(shù)據(jù)流引擎,希望將高度自動化的可觀測性能力、自動追蹤和自動標(biāo)簽?zāi)芰﹂_放到整個行業(yè),幫助企業(yè)客戶優(yōu)化云原生運(yùn)維工作運(yùn)行的效率、穩(wěn)定性和計算成本。

一、為什么需要可觀測性?

大量云原生技術(shù)的采用,導(dǎo)致IT系統(tǒng)越來越復(fù)雜,快速排障變得越來越難。傳統(tǒng)的應(yīng)用監(jiān)控(APM)和網(wǎng)絡(luò)監(jiān)控(NPM)工具,可以發(fā)現(xiàn)某個函數(shù)調(diào)用失敗或者某個鏈路性能下降,卻難以在復(fù)雜的云環(huán)境下找到故障發(fā)生的根本原因。Epsagon的一項調(diào)查表明,應(yīng)用開發(fā)者有高達(dá)30%的時間花在可觀測性能力建設(shè)上,另有20%的時間花在代碼Debug上,而Debug花費(fèi)的大部分時間又恰好是可觀測性建設(shè)不足導(dǎo)致。

可觀測性建設(shè)的難點(diǎn)包括兩個方面:

  埋點(diǎn)插碼難

開發(fā)者需要考慮為每一種語言、每一種框架進(jìn)行埋點(diǎn)和插碼。一些公司的業(yè)務(wù)開發(fā)團(tuán)隊很幸運(yùn),會有類似IDP(Internal Developer Platform)的團(tuán)隊負(fù)責(zé)整個公司的可觀測性能力建設(shè),提供埋點(diǎn)和插碼的SDK。但大部分語言缺乏類似JVM的字節(jié)碼注入機(jī)制,IDP團(tuán)隊每一次的SDK升級都需要業(yè)務(wù)開發(fā)團(tuán)隊同步發(fā)版、上線。

開發(fā)者需要考慮在微服務(wù)之間如何傳遞追蹤上下文。同樣需要為每一種語言、每一種框架進(jìn)行埋點(diǎn)和插碼,另一方面像MQTT 3.X、MySQL、Redis等缺乏Header Option字段的協(xié)議經(jīng)常成為追蹤的噩夢。

開發(fā)者需要為每一個指標(biāo)、追蹤、日志數(shù)據(jù)注入大量的屬性標(biāo)簽,以便于后續(xù)能夠?qū)τ^測數(shù)據(jù)進(jìn)行靈活的過濾、分組及關(guān)聯(lián)。然而這些標(biāo)簽已經(jīng)存在于K8s apiserver、服務(wù)注冊中心、應(yīng)用協(xié)議Header中,開發(fā)者不得不重復(fù)這份工作將他們搬遷到觀測數(shù)據(jù)中。平臺運(yùn)維難

開發(fā)者需要考慮如何避免指標(biāo)數(shù)據(jù)中攜帶高基標(biāo)簽,有些時候因為后端TSDB(Time Series Database)性能的不足,無奈將高基Tag字段轉(zhuǎn)換為Metrics,甚至丟棄;限制觀測數(shù)據(jù)的猖獗增長,在復(fù)雜的采樣策略之間權(quán)衡選擇以降低數(shù)據(jù)量,但通常會在某次問題排查時發(fā)現(xiàn)數(shù)據(jù)不全而無法進(jìn)行;維護(hù)復(fù)雜的可觀測平臺,他們通常有著負(fù)載均衡、消息隊列依賴。隨著復(fù)雜度的增長,可觀測性平臺本身的可觀測性能力同樣也成為問題。

二、DeepFlow可觀測性平臺

云杉網(wǎng)絡(luò)在SDN及云網(wǎng)絡(luò)領(lǐng)域深耕近十年,逐步從SDN核心技術(shù)走向IT系統(tǒng)的自動化和可觀測性,率先推出了DeepFlow云原生可觀測性平臺,面向混合云、容器、微服務(wù)的全棧虛擬化環(huán)境,實現(xiàn)對網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用的全棧指標(biāo)和全鏈路追蹤,結(jié)合云資源知識圖譜實現(xiàn)100+維度指標(biāo)數(shù)據(jù)的動態(tài)標(biāo)注,擁有零侵?jǐn)_部署的特性。獲得眾多大型銀行的青睞和認(rèn)可,成為商用的云原生監(jiān)控產(chǎn)品,并在近百家重點(diǎn)行業(yè)的企業(yè)云數(shù)據(jù)中心得到廣泛應(yīng)用。

隨著云時代為了讓業(yè)務(wù)運(yùn)行更加穩(wěn)定、業(yè)務(wù)創(chuàng)新更加高效,開發(fā)、運(yùn)維、SRE團(tuán)隊對可觀測性的需求空前高漲,但不同的團(tuán)隊所選擇的可觀測性方案和實踐路徑又各有不同,從應(yīng)用開發(fā)團(tuán)隊看來可觀測性建設(shè)已成為一項必要工作。

為幫助大家有效應(yīng)對以上困境,正式將DeepFlow核心的可觀測性數(shù)據(jù)流引擎開源,這一個為云原生應(yīng)用開發(fā)者建設(shè)可觀測性能力而量身打造的全棧、全鏈路、高性能數(shù)據(jù)引擎,能夠顯著降低開發(fā)者的埋點(diǎn)、插碼、維護(hù)負(fù)擔(dān),通過AutoTagging機(jī)制打破數(shù)據(jù)孤島,解鎖數(shù)據(jù)下鉆能力;基于創(chuàng)新的高性能SmartEncoding機(jī)制告別高基煩惱和資源焦慮;利用DeepFlow的可編程能力和開放接口,開發(fā)者可以快速將其融入到自己的可觀測性技術(shù)棧中。

  三、開源的DeepFlow(原名:MetaFlow)有什么優(yōu)勢?

  全棧

DeepFlow開源版使用AF_PACKET、BPF、eBPF技術(shù)實現(xiàn)的AutoMetrics機(jī)制,可以自動采集任何應(yīng)用的RED性能指標(biāo),精細(xì)至每一次應(yīng)用調(diào)用,覆蓋從應(yīng)用到基礎(chǔ)設(shè)施的所有軟件技術(shù)棧。在云原生環(huán)境中,DeepFlow開源版 的AutoTagging機(jī)制自動發(fā)現(xiàn)服務(wù)、實例、API的屬性信息,自動為每個觀測數(shù)據(jù)注入豐富的標(biāo)簽,從而消除數(shù)據(jù)孤島,并釋放數(shù)據(jù)的下鉆能力。

  全鏈路

DeepFlow開源版使用eBPF技術(shù)創(chuàng)新的實現(xiàn)了AutoTracing機(jī)制,在云原生環(huán)境中自動追蹤任意微服務(wù)、基礎(chǔ)設(shè)施服務(wù)的分布式調(diào)用鏈。在此基礎(chǔ)上,通過與OpenTelemetry的數(shù)據(jù)集成,將eBPF Event與OTel Span自動關(guān)聯(lián),實現(xiàn)完整的全棧、全鏈路追蹤,讓追蹤無盲點(diǎn)。

  高性能

DeepFlow開源版創(chuàng)新的SmartEncoding標(biāo)簽注入機(jī)制,能夠?qū)?biāo)簽數(shù)據(jù)的存儲性能提升10倍,從此告別高基標(biāo)簽和數(shù)據(jù)采樣焦慮。使用Rust實現(xiàn)Agent,擁有極致處理性能的同時保證內(nèi)存安全。使用Golang實現(xiàn)Server,重寫了Golang的map、pool基礎(chǔ)庫,數(shù)據(jù)查詢和內(nèi)存申請均有近10倍的性能提升。

可編程

DeepFlow開源版目前支持了對HTTP、HTTPS、Dubbo、MySQL、Redis、Kafka、MQTT、DNS協(xié)議的解析,并將保持迭代增加更多的應(yīng)用協(xié)議支持。除此之外,DeepFlow開源版計劃基于WASM技術(shù)提供了可編程接口,讓開發(fā)者可以快速具備對私有協(xié)議的解析能力,并可用于構(gòu)建特定場景的業(yè)務(wù)分析能力,例如5GC信令分析、金融交易分析、車機(jī)通信分析等。

開放接口

DeepFlow開源版支持接收廣泛的可觀測數(shù)據(jù)源,并利用AutoTagging和SmartEncoding提供高性能、統(tǒng)一的標(biāo)簽注入能力。支持插件式的數(shù)據(jù)庫接口,開發(fā)者可自由增加和替換最合適的數(shù)據(jù)庫。向上為所有觀測數(shù)據(jù)提供統(tǒng)一的標(biāo)準(zhǔn)SQL查詢能力,便于使用者快速集成到自己的可觀測性平臺中,也提供了在此基礎(chǔ)上繼續(xù)開發(fā)方言QL的可能性。

易于維護(hù)

DeepFlow開源版僅由Agent、Server兩個組件構(gòu)成,將復(fù)雜度隱藏在進(jìn)程內(nèi)部,將維護(hù)難度降低至極致。DeepFlow Server集群可對多資源池、異構(gòu)資源池、跨Region/AZ資源池中的Agent進(jìn)行統(tǒng)一管理,且無需依賴任何外部組件即可實現(xiàn)水平擴(kuò)展與負(fù)載均衡。

四、為什么要開源?

建設(shè)可觀測性已經(jīng)成為云原生應(yīng)用開發(fā)者的必要工作,然而現(xiàn)有的解決方案正悄無聲息的消耗著開發(fā)者越來越多的時間。開發(fā)者需要考慮如何為新的框架插入追蹤代碼?如何為新的語言增加打樁點(diǎn)?如何為每條日志和指標(biāo)注入上百個標(biāo)簽?如何維護(hù)越來越復(fù)雜的可觀測性數(shù)據(jù)平臺?這些工作嚴(yán)重擠占了業(yè)務(wù)開發(fā)工作的時間。

開源DeepFlow是云杉網(wǎng)絡(luò)送給新時代開發(fā)人員、運(yùn)維人員的一份禮物。希望開發(fā)人員能有更多的時間聚焦在業(yè)務(wù)上,將可觀測性更多的交給自動化的DeepFlow,讓自己的代碼更清晰整潔。通過DeepFlow,希望讓觀測更自動,讓開發(fā)者更自由。

五、擁抱DeepFlow!

你是否正在規(guī)劃或者實施云原生可觀測性、提升網(wǎng)絡(luò)故障定位效率的項目?

你是否正在頭痛數(shù)據(jù)孤島、資源開銷的問題?Metrics、Tracing、Logging三類數(shù)據(jù)無法關(guān)聯(lián)、無法流通,使用困難?

你是否正在經(jīng)歷追蹤和日志數(shù)據(jù)體量大,經(jīng)常需要削足適履,做采樣抹掉高基數(shù)字段?

非常歡迎你通過GitHub/微信 的方式聯(lián)系我們體驗DeepFlow

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )