使用 OpenTelemetry 構(gòu)建可觀測(cè)性 06 - 生態(tài)系統(tǒng)
過(guò)去的五篇文章討論了如何使用 OpenTelemetry 來(lái)構(gòu)建可觀測(cè)性的技術(shù)細(xì)節(jié)。我認(rèn)為在本博文系列的結(jié)尾介紹有關(guān) OTel 生態(tài)系統(tǒng)的信息,為讀者提供更全面的了解非常重要。OpenTelemetry 的發(fā)展非常迅速,對(duì)于剛接觸它的人來(lái)說(shuō),可能會(huì)感到有些不知所措或困惑,不知道在哪里找到有效的信息或資源。
OpenTelemetry 是一個(gè) CNCF 項(xiàng)目。但是,在 CNCF 項(xiàng)目中 OpenTelemetry 的表現(xiàn)如何?以拉取請(qǐng)求、問(wèn)題和提交代碼的數(shù)量來(lái)衡量,OpenTelemetry 是第二活躍的 CNCF 項(xiàng)目,僅次于 Kubernetes:

數(shù)據(jù)源(X Corp)
OpenTelemetry 的未來(lái)發(fā)展前景廣闊,充滿希望。我相信它將在云原生領(lǐng)域中扮演重要角色,并且將持續(xù)發(fā)展下去。
項(xiàng)目官網(wǎng)
要了解和學(xué)習(xí)使用 OpenTelemetry 首推的是項(xiàng)目官網(wǎng):opentelemetry.io。那里有豐富的信息和指南,可以幫助你快速入門并在你的軟件中應(yīng)用 OpenTelemetry 。
OpenTelemetry 的項(xiàng)目博客也是值得關(guān)注的部分。在那里你會(huì)找到很多更新和公告。
通常來(lái)說(shuō),如果你對(duì) OpenTelemetry 還不熟悉,我強(qiáng)烈建議你花些時(shí)間瀏覽一下項(xiàng)目官網(wǎng)。
社區(qū)
OTel 擁有眾多的功能集。而隨著這些功能的增加,通常也伴隨著一定程度的復(fù)雜性。在某些時(shí)候,你可能需要社區(qū)的幫助。
我發(fā)現(xiàn)與社區(qū)成員(包括維護(hù)者?。┝奶斓淖罴逊绞绞峭ㄟ^(guò) CNCF Slack 工作空間。 OpenTelemetry 最主要的頻道是 ?#opentelemetry
?,這是一般性討論。也有一些特定話題或語(yǔ)言版本的頻道:
#otel-collector?- 所有的有關(guān) OpenTelemetry Collector
#otel-go?- OpenTelemetry Go (API, SDK, implementation)
#otel-python?- OpenTelemetry Python (API, SDK, implementation)
還有更多!在 Slack 中搜索關(guān)鍵字 ‘#otel’ 看看其他 OpenTelemetry 頻道。
在 OpenTelemetry 的社區(qū)頻道中,你可以找到很多有價(jià)值的信息,比如項(xiàng)目的治理、感興趣的領(lǐng)域、會(huì)議和項(xiàng)目排期時(shí)間表等等。如果你有興趣參與 OpenTelemetry 項(xiàng)目,這個(gè)社區(qū)倉(cāng)庫(kù)是一個(gè)很好的起點(diǎn),幫助你更好地了解和參與進(jìn)來(lái)。
項(xiàng)目倉(cāng)庫(kù)
我不得不承認(rèn),當(dāng)我開(kāi)始使用 OpenTelemetry 時(shí),對(duì)我來(lái)說(shuō)更令人困惑的事情之一是GitHub項(xiàng)目倉(cāng)庫(kù)的組織方式。 OpenTelemetry的主要組件(不是特定于語(yǔ)言或收集器)可以在以下項(xiàng)目倉(cāng)庫(kù)中找到:
open-telemetry/opentelemetry-specification?- OTel 規(guī)范(procotol, metrics, traces, logs, baggage, and many other specifications for root OTel)、架構(gòu)和語(yǔ)義約定
open-telemetry/oteps?- 項(xiàng)目改進(jìn)提案的倉(cāng)庫(kù)
open-telemetry/opentelemetry-proto?- OTLP(OpenTelemetry Protocol)的 Protobuf 定義。
OTel 收集器項(xiàng)目倉(cāng)庫(kù)包括:
open-telemetry/opentelemetry-collector?- 核心收集器代碼,包括用于自定義收集器發(fā)行版構(gòu)建的 OCB 工具
open-telemetry/opentelemetry-collector-contrib?-貢獻(xiàn)版 - 收集器的接收器、擴(kuò)展、處理器和導(dǎo)出器
open-telemetry/opentelemetry-collector-releases?- 用于發(fā)布核心和貢獻(xiàn)發(fā)行版的倉(cāng)庫(kù),包括發(fā)行版的清單和 Dockerfiles
open-telemetry/opentelemetry-operator?- 用于處理收集器的 Kubernetes operator,包括 sidecar 容器注入到應(yīng)用程序 Pod 中
此外,針對(duì)特定編程語(yǔ)言的埋點(diǎn)庫(kù)是 OpenTelemetry 的一個(gè)重要組成部分。以下是一些項(xiàng)目倉(cāng)庫(kù):
open-telemetry/opentelemetry-go?- Go API 和 SDK
open-telemetry/opentelemetry-go-contrib?- 針對(duì)OTel Go的擴(kuò)展,包括埋點(diǎn)和傳播器。
open-telemetry/opentelemetry-python?- Python API 和 SDK
open-telemetry/opentelemetry-python-contrib?- OTel Python 的擴(kuò)展
有些編程語(yǔ)言的倉(cāng)庫(kù)可能不同。例如,Java 語(yǔ)言實(shí)現(xiàn)的主要倉(cāng)庫(kù)是?open-telemetry/opentelemetry-java
?,?open-telemetry/opentelemetry-java-contrib
?用于擴(kuò)展,對(duì)于埋點(diǎn)有一個(gè)單獨(dú)的倉(cāng)庫(kù)?open-telemetry/opentelemetry-java-instrumentation
。
注冊(cè)表
OpenTelemetry 生態(tài)系統(tǒng)中的最后一個(gè)重要組成部分是?OpenTelemetry 注冊(cè)表。由于項(xiàng)目中存在著各種實(shí)現(xiàn)和產(chǎn)品組合,用戶可以在一個(gè)地方瀏覽和搜索可用的實(shí)現(xiàn)和產(chǎn)品。他們可以根據(jù)自己的需求和偏好,選擇最適合他們的解決方案。
總結(jié)
OpenTelemetry 是一個(gè)非常優(yōu)秀的項(xiàng)目,它為我們開(kāi)發(fā)的軟件抽象出一套實(shí)現(xiàn)可觀測(cè)性的方案。通過(guò)使用 OTel ,我們能夠獲得最大化的可觀測(cè)能力,而無(wú)需進(jìn)行任何代碼更改就能發(fā)現(xiàn)潛在的問(wèn)題。
我強(qiáng)烈推薦您深入了解 OpenTelemetry 項(xiàng)目!一旦您開(kāi)始使用,您將會(huì)愛(ài)不釋手!
本文翻譯自:https://trstringer.com/otel-part6-ecosystem/
擴(kuò)展閱讀:
方法論:面向故障處理的可觀測(cè)性體系建設(shè)(https://flashcat.cloud/blog/construction-of-observability-system-for-fault-processing/)
白皮書:事件 OnCall 中心建設(shè)方法(https://download.flashcat.cloud/flashduty-white-paper-v1.pdf)
好工具:FlashDuty - 一站式告警處理平臺(tái):告警降噪、排班OnCall(https://flashcat.cloud/product/flashduty/)