??? Jaeger v2 來了!閱讀部落格文章並嘗試一下。
圖解TD
SDK["OpenTelemetry SDK"] --> |HTTP 或 gRPC|集電極
COLLECTOR["Jaeger Collector"] --> STORE[儲存]
收集器 --> |gRPC| PLUGIN[儲存外掛程式]
收集器 --> |gRPC/採樣|軟體開發工具包
外掛程式 --> 商店
QUERY[Jaeger 查詢服務] --> STORE
查詢 --> |gRPC|外掛
UI[Jaeger UI] --> |HTTP|詢問
子圖應用程式主機
子圖用戶應用程式
軟體開發工具包
結尾
結尾
Jaeger 受到 Dapper 和 OpenZipkin 的啟發,是由 Uber Technologies 創建並捐贈給雲端原生運算基金會的分散式追蹤平台。它可用於監控基於微服務的分散式系統:
參見:
Jaeger 是雲端原生運算基金會(CNCF)主辦的第七個頂級專案(於 2019 年 10 月畢業)。如果您是一家想要幫助塑造容器封裝、動態調度和麵向微服務的技術發展的公司,請考慮加入 CNCF。有關誰參與以及 Jaeger 如何發揮作用的詳細信息,請閱讀 CNCF Jaeger 孵化公告和 Jaeger 畢業公告。
Jaeger 是一個具有開放治理的開源專案。我們歡迎社區的貢獻,我們希望您能幫助改進和擴展該項目。以下是一些如何參與的想法。其中許多甚至不需要任何編碼。
Jaeger 後端的設計旨在消除單點故障,並根據業務需求進行擴展。例如,Uber 的任何特定 Jaeger 安裝通常每天都會處理數十億個跨度。
Jaeger 和 OpenTelemetry 專案有不同的目標。 OpenTelemetry 旨在提供多種語言的 API 和 SDK,以允許應用程式將各種遙測資料從流程匯出到任意數量的指標和追蹤後端。 Jaeger 專案主要是追蹤後端,用於接收追蹤遙測資料並提供該資料的處理、聚合、資料探勘和視覺化。有關更多信息,請參閱部落格文章 Jaeger 和 OpenTelemetry。
Jaeger 最初設計是為了支援 OpenTracing 標準。 Jaeger UI 中仍然使用該術語,但這些概念直接對應到 OpenTelemetry 追蹤資料模型。
能力 | 開放追蹤概念 | 開放遙測概念 |
---|---|---|
將跡線表示為有向無環圖(而不僅僅是樹) | 跨度參考 | 跨距連結 |
強類型跨度屬性 | 跨距標籤 | 跨度屬性 |
強類型事件/日誌 | 跨度日誌 | 跨度事件 |
Jaeger 專案建議使用 OpenTelemetry SDK 進行檢測,而不是現已棄用的 Jaeger SDK。
Jaeger 可與越來越多的儲存後端一起使用:
Jaeger Web UI 使用流行的開源框架(如 React)以 Javascript 實作。 v1.0 中發布了多項效能改進,使 UI 能夠有效地處理大量資料並顯示具有數萬個跨度的追蹤(例如,我們嘗試了具有 80,000 個跨度的追蹤)。
Jaeger 後端作為 Docker 映像的集合進行分發。這些二進位檔案支援各種設定方法,包括命令列選項、環境變數和多種格式的設定檔(yaml、toml 等)。
在生產 Kubernetes 叢集中部署 Jaeger 的建議方法是透過 Jaeger Operator。
Jaeger Operator 提供了一個 CLI,用於從 Jaeger CR 產生 Kubernetes 清單。這可以被視為普通 Kubernetes 清單檔案的替代來源。
Jaeger 生態系統也提供了 Helm 圖表作為部署 Jaeger 的替代方式。
預設情況下,所有 Jaeger 後端組件都會公開 Prometheus 指標(也支援其他指標後端)。使用結構化日誌庫 zap 將日誌寫入標準輸出。
Jaeger 的第三方安全審計可在 https://github.com/jaegertracing/security-audits 中找到。請參閱問題 #1718,以了解 Jaeger 中可用安全機制的摘要。
儘管我們建議使用 OpenTelemetry 來檢測應用程序,但如果您的組織已經使用 Zipkin 庫投資了檢測,則您不必重寫所有程式碼。 Jaeger 透過 HTTP 接受 Zipkin 格式(Thrift 或 JSON v1/v2)的跨度,提供與 Zipkin 的向後相容性。從 Zipkin 後端切換只需將流量從 Zipkin 庫路由到 Jaeger 後端即可。
有時,CLI 標誌可能會因可用性改進或新功能等原因而被棄用。在這種情況下,引入棄用的開發人員必須遵循這些準則。
簡而言之,對於已棄用的 CLI 標誌,您應該會在--help
文件中看到以下訊息:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
在刪除已棄用的 CLI 標誌之前,將提供從包含棄用通知的第一個版本起至少3 個月或兩個小版本更新(以較晚者為準)的寬限期。
例如,考慮這樣一個場景:v1.28.0 於 2021 年 6 月 1 日發布,其中包含 CLI 標誌的棄用通知。此標誌將一直處於已棄用狀態,直到 2021 年 9 月 1 日或 v1.30.0 稍後為止,可以在這些事件發生時或之後將其刪除。它可能會在比上述寬限期更長的時間內保持棄用狀態。
Jaeger 專案嘗試追蹤 Go 團隊定義的目前支援的 Go 版本。刪除對不支援的 Go 版本的支援並不被視為重大變更。
從 Go 1.21 發布開始,對 Go 版本的支援將更新如下:
N
發布後不久,將對建置和測試步驟進行更新以適應最新的 Go 小版本。N
發布後不久,對 Go 版本N-2
的支援將被刪除,版本N-1
將成為所需的最低版本。 Jaeger 專案建議使用 OpenTelemetry SDK 進行檢測,而不是現已棄用的 Jaeger 原生 SDK。
請參閱貢獻。
請參閱貢獻。
感謝所有已經做出貢獻的人!
成為維護者的規則在治理文件中定義。以下是 Jaeger 專案的官方維護者。請使用@jaegertracing/jaeger-maintainers
在問題/PR 上標記它們。
jaegertracing org 下的一些儲存庫有額外的維護者。
我們感謝前維護者對 Jaeger 專案的貢獻。
Jaeger 維護者和貢獻者定期透過視訊通話會面。歡迎所有人加入,包括最終用戶。有關會議詳細信息,請參閱 https://www.jaegertracing.io/get-in-touch/。
請參閱 https://www.jaegertracing.io/docs/roadmap/
有問題、建議、錯誤回報嗎?透過以下管道接觸計畫社群:
#jaeger
(首次需要加入 CNCF Slack)jaeger-tracing
郵件群組Jaeger 作為一個產品由多個組件組成。我們希望支援不同類型的用戶,無論他們僅使用我們的檢測庫還是完整的端到端 Jaeger 安裝,無論是在生產中運行還是使用它來解決開發中的問題。
請參閱 ADOPTERS.md 以了解目前使用 Jaeger 的一些組織。如果您想將您的組織添加到清單中,請對我們的調查問題發表評論。
版權所有 (c) Jaeger 作者。 Apache 2.0 許可證。