目錄
Google Dapper
Twitter Zipkin
Uber Jaeger
OpenTracing 和 OpenCensus
OpenTelemetry
小結(jié)
分布式鏈路追蹤是現(xiàn)代云計(jì)算和微服務(wù)架構(gòu)中一個關(guān)鍵技術(shù),可以讓開發(fā)者和運(yùn)維團(tuán)隊(duì)理解和監(jiān)控服務(wù)請求在復(fù)雜系統(tǒng)中的完整流轉(zhuǎn)路徑。分布式鏈路追蹤技術(shù)的發(fā)展經(jīng)歷了從早期的專有解決方案到現(xiàn)代的開源和標(biāo)準(zhǔn)化的過程,本文講解一下分布式鏈路追蹤標(biāo)準(zhǔn)的演進(jìn)過程。
Google Dapper
Google 于 2010 年發(fā)布的題為《Dapper,a Large-Scale Distributed Systems Tracing Infrastructure》的論文,是分布式鏈路追蹤的一個重要里程碑。這篇論文詳細(xì)描述了 Google 內(nèi)部使用的分布式追蹤系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方法。Dapper 的目標(biāo)是提供低開銷、應(yīng)用級的鏈路追蹤系統(tǒng),能夠收集請求在分布式系統(tǒng)的流轉(zhuǎn)數(shù)據(jù)。該系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方式為后來的分布式追蹤技術(shù)奠定了基礎(chǔ)。
Dapper 的核心概念包括:
- Span:表示一個操作或函數(shù)調(diào)用的時間跨度。
- Trace:由多個 span 組成,代表一個請求的完整生命周期。
- Sampling:為了降低數(shù)據(jù)收集的開銷,Dapper 采用了抽樣技術(shù),只追蹤一部分請求。
Twitter Zipkin
受到 Dapper 的啟發(fā),Twitter 開發(fā)了自己的分布式追蹤系統(tǒng) Zipkin。Zipkin 是第一個被廣泛采用的開源的分布式鏈路追蹤系統(tǒng),提供了數(shù)據(jù)收集、存儲和查詢的功能,以及友好的 ui 界面來展示追蹤信息。
Zipkin 的架構(gòu)包括:
- Collector:負(fù)責(zé)接收各服務(wù)發(fā)送的追蹤數(shù)據(jù)。
- Storage:追蹤數(shù)據(jù)的存儲系統(tǒng),可以是 SQL 數(shù)據(jù)庫、Cassandra 或 Elasticsearch。
- API:提供數(shù)據(jù)查詢的接口。
- Web UI:用于展示追蹤信息的系統(tǒng)。
Zipkin 的開源特性使其在社區(qū)中迅速流行,許多公司開始使用并貢獻(xiàn)代碼。
Uber Jaeger
Uber 在內(nèi)部面臨與 Twitter 類似的問題,于是開發(fā)了自己的鏈路追蹤系統(tǒng) Jaeger。Jaeger 在設(shè)計(jì)上受到了 Dapper 和 Zipkin 的啟發(fā),并引入了一些新的特性和概念,比如:
- 自適應(yīng)采樣:可以動態(tài)調(diào)整采樣率,以在性能和數(shù)據(jù)質(zhì)量之間取得平衡。
- 高級查詢功能:提供了更加強(qiáng)大和靈活的查詢能力。
- 端到端追蹤:跟蹤請求從開始到結(jié)束的完整路徑。
Jaeger 后來也被開源,并且成為云原生計(jì)算基金會(CNCF)的托管項(xiàng)目。Jaeger 的加入進(jìn)一步加強(qiáng)了分布式鏈路追蹤技術(shù)在云原生生態(tài)系統(tǒng)中的地位,并得到了更廣泛的社區(qū)支持。成為了該領(lǐng)域的重要項(xiàng)目。
OpenTracing 和 OpenCensus
隨著分布式鏈路追蹤技術(shù)的日益流行,有一個問題也日益突出:不同的鏈路追蹤系統(tǒng)和工具之間缺乏兼容性,如果使用了一個鏈路追蹤系統(tǒng),就很難切換到另一個了。為了解決這個問題,產(chǎn)生了兩個重要的項(xiàng)目:OpenTracing 和 OpenCensus。
OpenTracing 旨在提供一套統(tǒng)一的、廠商無關(guān)的鏈路追蹤 API 和規(guī)范,定義了一套標(biāo)準(zhǔn)的接口,允許開發(fā)者在不同的鏈路追蹤系統(tǒng)之間切換而無需修改代碼。OpenTracing 的目標(biāo)是成為鏈路追蹤數(shù)據(jù)的中間層,讓鏈路追蹤工具的選擇成為運(yùn)行時決策而不是設(shè)計(jì)時決策。OpenTracing 包括了 API 規(guī)范、實(shí)現(xiàn)該規(guī)范的框架和庫以及項(xiàng)目文檔。
OpenCensus 是由 Google 發(fā)起的項(xiàng)目,與 OpenTracing 類似的是都支持 Trace。但相比 OpenTracing 增加了更多的功能,包括新增了對?Metrics 的支持,不僅制定了規(guī)范還實(shí)現(xiàn)了 Agent 和 Collector。
雖然 OpenTracing 和 OpenCensus 有著相似的目標(biāo),但它們在實(shí)現(xiàn)方式和社區(qū)支持上存在差異,這也導(dǎo)致了一定程度的分裂。
OpenTelemetry
為了解決 OpenTracing 和 OpenCensus 之間的分歧并統(tǒng)一標(biāo)準(zhǔn),兩個項(xiàng)目合并成為了 OpenTelemetry 項(xiàng)目。OpenTelemetry 旨在建立一個全面的可觀測性工具集,包括了?Metrics、Tracing、Logs?和日志收集功能。OpenTelemetry 與廠商、平臺無關(guān),不提供后端服務(wù)。用戶可根據(jù)自己的需求將數(shù)據(jù)導(dǎo)出到不同后端,例如 Prometheus、Zipkin、Jaeger 和各云廠商的可觀測服務(wù)。
OpenTelemetry的關(guān)鍵特性包括:
- 統(tǒng)一的 API 和 SDK:定義了 Metrics、Tracing、Logs 幾種類型的標(biāo)準(zhǔn),并提供了相關(guān)的適配了各種語言的 SDK
- 多語言支持:支持多種編程語言和框架。
- 可插拔架構(gòu):可以輕松地將數(shù)據(jù)導(dǎo)出到不同的后端分析工具。
OpenTelemetry 的目標(biāo)是成為分布式鏈路追蹤和監(jiān)控的事實(shí)標(biāo)準(zhǔn),通過提供一個全面的解決方案,試圖適應(yīng)不斷發(fā)展的分布式系統(tǒng)的需求。文章來源:http://www.zghlxwxcb.cn/news/detail-753116.html
小結(jié)
從 Dapper 到 OpenTelemetry,分布式鏈路追蹤技術(shù)經(jīng)經(jīng)歷了從專有到開源,再到標(biāo)準(zhǔn)化的過程。這一過程反映了行業(yè)對于系統(tǒng)可觀測性的不斷追求,OpenTelemetry 作為分布式鏈路追蹤的事實(shí)標(biāo)準(zhǔn),代表了這個領(lǐng)域未來的技術(shù)方向。文章來源地址http://www.zghlxwxcb.cn/news/detail-753116.html
到了這里,關(guān)于鏈路追蹤詳解(三):分布式鏈路追蹤標(biāo)準(zhǔn)的演進(jìn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!