目錄
OpenTelemetry 是什么?
OpenTelemetry 的起源和目標(biāo)
OpenTelemetry 主要特點(diǎn)和功能
OpenTelemetry 的核心組件
OpenTelemetry 的工作原理
OpenTelemetry 的特點(diǎn)
OpenTelemetry 的應(yīng)用場(chǎng)景
小結(jié)
OpenTelemetry 是什么?
OpenTelemetry 是一個(gè)為實(shí)現(xiàn)可觀測(cè)性的開源的框架和工具集,用于創(chuàng)建和管理遙測(cè)數(shù)據(jù),例如 traces,、metrics?和?logs,旨在提供統(tǒng)一的解決方案來滿足分布式系統(tǒng)的可觀察性需求。OpenTelemetry?整合了 OpenCensus 和 OpenTracing 的功能,并擴(kuò)展了更多的度量指標(biāo)和追蹤信息采集能力,使分布式系統(tǒng)的可觀測(cè)性變得更加簡(jiǎn)單、可擴(kuò)展和可互操作。OpenTelemetry 與提供可觀測(cè)性產(chǎn)品的供應(yīng)商無關(guān),可以與各種各樣的可觀測(cè)性后端一起使用,包括像 Zipkin、Jaeger、Prometheus 等開源產(chǎn)品,以及其他商業(yè)產(chǎn)品。OpenTelemetry 也是是云原生計(jì)算基金會(huì)(CNCF)的一個(gè)托管項(xiàng)目。
OpenTelemetry 的起源和目標(biāo)
隨著云計(jì)算、微服務(wù)架構(gòu)和日益復(fù)雜的業(yè)務(wù)需求的興起,對(duì)可觀測(cè)性的需求也越來越大,可觀測(cè)性是通過檢查分析系統(tǒng)的輸出內(nèi)容來了解其內(nèi)部狀態(tài)的能力。
最初,開發(fā)者使用日志來解決這個(gè)問題,但很快發(fā)現(xiàn)通過日志不能夠清晰地看到一次請(qǐng)求是如何被處理和流轉(zhuǎn)的。為了解決這些問題,Google 開發(fā)了 Dapper 布式系統(tǒng)追蹤的框架,Dapper 的思想啟發(fā)了很多公司和開源項(xiàng)目,如 OpenTracing 和 OpenCensus,它們提供了標(biāo)準(zhǔn)化的 API 和庫,以幫助開發(fā)者在他們的應(yīng)用中實(shí)現(xiàn)分布式鏈路追蹤和指標(biāo)收集。
然而,隨著這兩個(gè)項(xiàng)目的發(fā)展,社區(qū)意識(shí)到存在一些重疊和不一致的地方。因此,OpenTracing 和 OpenCensus 合并為 OpenTelemetry,以創(chuàng)建一個(gè)統(tǒng)一的、更強(qiáng)大的工具集,不僅包含了 traces 和 metrics,還包括了 logs。
在軟件系統(tǒng)中,可以通過檢查遙測(cè)數(shù)據(jù)(包括 traces,、metrics 和 logs)了解系統(tǒng)的內(nèi)部狀態(tài)。為了實(shí)現(xiàn)系統(tǒng)的可觀測(cè)性,必須對(duì)系統(tǒng)進(jìn)行檢測(cè)。也就是說,代碼需要能產(chǎn)生 traces、metrics 和 logs,并將這些數(shù)據(jù)發(fā)送到可觀測(cè)性后端。
OpenTelemetry 主要特點(diǎn)和功能
- 統(tǒng)一的觀察性標(biāo)準(zhǔn):OpenTelemetry 提供了一套統(tǒng)一的觀測(cè)性標(biāo)準(zhǔn),使得不同廠商和工具之間的數(shù)據(jù)可以相互兼容和共享,有助于減少開發(fā)和運(yùn)維人員在系統(tǒng)集成方面的成本和難度。
- 豐富的度量指標(biāo)和追蹤信息:OpenTelemetry 支持采集豐富的度量指標(biāo)和追蹤信息,包括跟蹤數(shù)據(jù)(traces)、指標(biāo)數(shù)據(jù)(metrics)、日志數(shù)據(jù)(logs)。這些數(shù)據(jù)可以用于分析系統(tǒng)的性能、行為和問題,幫助開發(fā)人員更好地了解系統(tǒng)運(yùn)行狀況。
- 靈活的數(shù)據(jù)采集和導(dǎo)出:OpenTelemetry 支持多種數(shù)據(jù)采集和導(dǎo)出的方式,包括直接從應(yīng)用程序中采集數(shù)據(jù)、從日志文件中導(dǎo)入數(shù)據(jù)、或者通過代理(agent)從遠(yuǎn)程系統(tǒng)中采集數(shù)據(jù)。還提供了對(duì)常見數(shù)據(jù)格式和協(xié)議的支持,如 Prometheus、Zipkin、Jaeger 等。
- 可擴(kuò)展的插件式架構(gòu):OpenTelemetry 采用插件式架構(gòu),允許用戶根據(jù)需要定制和擴(kuò)展其功能。開發(fā)者可以通過編寫插件來支持新的數(shù)據(jù)格式、導(dǎo)出工具或傳輸協(xié)議。這種可擴(kuò)展性使得 OpenTelemetry 能夠適應(yīng)不同的使用場(chǎng)景和需求。
- 開源社區(qū)和生態(tài)系統(tǒng):OpenTelemetry 是一個(gè)開源項(xiàng)目,擁有活躍的社區(qū)和生態(tài)系統(tǒng)。開發(fā)者可以參與開源項(xiàng)目的開發(fā)、貢獻(xiàn)代碼、解決問題、討論使用經(jīng)驗(yàn)等。此外,OpenTelemetry 還提供了豐富的文檔、教程和示例,幫助用戶快速上手和使用。
OpenTelemetry 的核心組件
OpenTelemetry 主要由以下幾個(gè)核心組件構(gòu)成:
- API:定義了收集遙測(cè)數(shù)據(jù)的接口,使開發(fā)者能夠編寫可插拔的代碼,以便在不同的遙測(cè)系統(tǒng)之間切換,而無需更改應(yīng)用程序的主體代碼。
- SDK:是對(duì) API 的實(shí)現(xiàn),用來實(shí)現(xiàn)對(duì)遙測(cè)數(shù)據(jù)的收集、處理和導(dǎo)出。SDK 通常是可配置的,允許開發(fā)者調(diào)整數(shù)據(jù)收集的粒度和性能影響。
- Instrumentation Libraries:這些庫提供了對(duì)常見框架和庫的自動(dòng)插樁支持,以便開發(fā)者無需手動(dòng)編寫大量的遙測(cè)代碼。
- Collector:是一個(gè)獨(dú)立的服務(wù),可以接收、處理和導(dǎo)出遙測(cè)數(shù)據(jù)。可以部署為代理或作為后端服務(wù)的一部分,以接收來自應(yīng)用程序的遙測(cè)數(shù)據(jù)。
- Exporters:借助不同的 Exporter 可以使 SDK 或 Collector 將遙測(cè)數(shù)據(jù)導(dǎo)出到各種后端系統(tǒng),如 Prometheus、Jaeger、Zipkin 等。
OpenTelemetry 的工作原理
OpenTelemetry 的工作原理可以分為以下幾個(gè)步驟:
- 自動(dòng)插樁:開發(fā)者通過將 OpenTelemetry 的 Instrumentation Libraries 集成到自己的應(yīng)用程序中,自動(dòng)地在代碼的關(guān)鍵路徑上收集遙測(cè)數(shù)據(jù)。
- 數(shù)據(jù)收集與處理:借助 Instrumentation Libraries 收集到相應(yīng)數(shù)據(jù)后,通過 SDK 進(jìn)行進(jìn)一步的處理,如聚合、過濾和批處理,以優(yōu)化性能和數(shù)據(jù)傳輸。
- 數(shù)據(jù)導(dǎo)出:處理后的數(shù)據(jù)通過 Exporters 發(fā)送到指定的后端系統(tǒng),可以是專門的鏈路追蹤系統(tǒng)、時(shí)序數(shù)據(jù)庫或者日志系統(tǒng)。
OpenTelemetry 的特點(diǎn)
OpenTelemetry 的設(shè)計(jì)考慮了現(xiàn)代應(yīng)用的需求:
- 開源和跨語言:支持多種編程語言和框架,適用于多樣化的開發(fā)環(huán)境。
- 可擴(kuò)展性:通過 Exporters 和自定義 SDK 配置,可以輕松地適配不同的后端系統(tǒng)。
- 端到端追蹤:提供了在復(fù)雜的分布式系統(tǒng)中跟蹤請(qǐng)求的能力,對(duì)于微服務(wù)架構(gòu)來說也非常實(shí)用。
- 性能考量:SDK 提供了數(shù)據(jù)采樣和處理的功能,將對(duì)應(yīng)用性能的影響降到最低。
OpenTelemetry 的應(yīng)用場(chǎng)景
OpenTelemetry 可以應(yīng)用于多種場(chǎng)景,包括但不限于:文章來源:http://www.zghlxwxcb.cn/news/detail-758462.html
- 微服務(wù)監(jiān)控:在微服務(wù)架構(gòu)中,可以使用 OpenTelemetry 來跟蹤跨服務(wù)的請(qǐng)求,并收集服務(wù)的性能指標(biāo)。
- 云原生應(yīng)用:為 Kubernetes 和其他云原生技術(shù)提供了強(qiáng)大的監(jiān)控和追蹤能力。
- 故障排查:當(dāng)出現(xiàn)性能下降或請(qǐng)求錯(cuò)誤時(shí),OpenTelemetry 可以幫助快速定位問題。
小結(jié)
OpenTelemetry 代表了分布式鏈路追蹤和監(jiān)控的未來方向,目標(biāo)是簡(jiǎn)化和統(tǒng)一遙測(cè)數(shù)據(jù)的收集和管理,隨著社區(qū)的不斷發(fā)展和技術(shù)的成熟,OpenTelemetry 無疑將在現(xiàn)代軟件開發(fā)和運(yùn)維中發(fā)揮越來越重要的作用。文章來源地址http://www.zghlxwxcb.cn/news/detail-758462.html
到了這里,關(guān)于鏈路追蹤詳解(四):分布式鏈路追蹤的事實(shí)標(biāo)準(zhǔn) OpenTelemetry 概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!