開始使用
在您的本機環境中開始並執行 Jaeger
如果您是分散式追蹤的新手,請查看簡介頁面。
檢測
您的應用程式必須經過檢測才能將追蹤資料傳送至 Jaeger。我們建議使用 OpenTelemetry 檢測和 SDK。
過去,Jaeger 專案支援自己的 SDK(又稱追蹤器、客戶端函式庫),這些 SDK 實作了 OpenTracing API。自 2022 年起,Jaeger SDK 不再受支援,建議所有使用者移轉至 OpenTelemetry。
All in One
all-in-one 是一個可執行檔,旨在進行快速的本機測試。它包括 Jaeger UI、jaeger-collector、jaeger-query 和 jaeger-agent,以及記憶體內儲存元件。
啟動 all-in-one 最簡單的方法是使用發佈到 DockerHub 的預先建置映像 (單行命令)。
docker run --rm --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:1.62.0
或者,從二進位發佈檔案執行 jaeger-all-in-one(.exe)
可執行檔
jaeger-all-in-one --collector.zipkin.host-port=:9411
然後,您可以導覽至 https://127.0.0.1:16686
以存取 Jaeger UI。
容器會公開下列連接埠
連接埠 | 通訊協定 | 元件 | 功能 |
---|---|---|---|
6831 | UDP | 代理程式 | 透過 Thrift-compact 通訊協定接受 jaeger.thrift (大多數 SDK 使用) |
6832 | UDP | 代理程式 | 透過 Thrift-binary 通訊協定接受 jaeger.thrift (Node.js SDK 使用) |
5775 | UDP | 代理程式 | (已淘汰) 透過 compact Thrift 通訊協定接受 zipkin.thrift (僅限舊版用戶端使用) |
5778 | HTTP | 代理程式 | 提供設定 (取樣等) |
16686 | HTTP | 查詢 | 提供前端 |
4317 | HTTP | 收集器 | 透過 gRPC 接受 OpenTelemetry 通訊協定 (OTLP) |
4318 | HTTP | 收集器 | 透過 HTTP 接受 OpenTelemetry 通訊協定 (OTLP) |
14268 | HTTP | 收集器 | 直接從用戶端接受 jaeger.thrift |
14250 | HTTP | 收集器 | 接受 model.proto |
9411 | HTTP | 收集器 | Zipkin 相容端點 (選用) |
使用服務效能監控 (SPM)
請參閱服務效能監控 (SPM)。
在 Kubernetes 上
請參閱 Kubernetes Operator:https://github.com/jaegertracing/jaeger-operator
範例應用程式:HotROD
HotROD (隨選乘車服務) 是一個示範應用程式,由數個微服務組成,並說明如何使用 OpenTelemetry 和分散式追蹤。部落格文章中提供教學課程/逐步解說:讓 Jaeger 帶您體驗 HotROD 旅程 。
HotROD 應用程式可以獨立執行,但需要 Jaeger 後端才能檢視追蹤。
功能
- 透過資料驅動的依賴關係圖,探索整個系統的架構。
- 檢視要求時間軸和錯誤;瞭解應用程式的運作方式。
- 找出延遲和缺乏並行的來源。
- 高度內容相關的記錄。
- 使用行李傳播來診斷要求之間的爭用 (佇列) 以及在服務中花費的時間。
- 使用來自
opentelemetry-contrib
的開放原始碼函式庫,免費取得廠商中立的檢測。
執行
我們建議透過 docker compose
一起執行 Jaeger 和 HotROD。
使用 Docker Compose
git clone git@github.com:jaegertracing/jaeger.git jaeger
cd jaeger/examples/hotrod
docker compose up
# Ctrl-C to stop
使用 Docker
docker run --rm -it --link jaeger \
-p8080-8083:8080-8083 \
-e OTEL_EXPORTER_OTLP_ENDPOINT="http://jaeger:4318" \
jaegertracing/example-hotrod:1.62.0 \
all --otel-exporter=otlp
從原始碼
為了從原始碼執行,您需要
- 您的機器上已安裝 Go 工具鏈 (請參考 go.mod 檔案以了解所需的最低 Go 版本)。
- 一個正在運行的 Jaeger 後端,用於查看追蹤資訊。
git clone git@github.com:jaegertracing/jaeger.git jaeger
cd jaeger
go run ./examples/hotrod/main.go all
從二進制發行版本
從二進制發行版本壓縮檔執行 example-hotrod(.exe)
可執行檔
example-hotrod all
然後瀏覽至 https://127.0.0.1:8080
。
從 Zipkin 遷移
jaeger-collector 服務公開 Zipkin 相容的 REST API /api/v1/spans
,接受 Thrift 和 JSON 格式。另外還有 /api/v2/spans
用於 JSON 和 Proto 格式。預設情況下它是停用的。可以使用 --collector.zipkin.host-port=:9411
啟用它。
Zipkin Thrift IDL 和 Zipkin Proto IDL 檔案可以在 jaegertracing/jaeger-idl 儲存庫中找到。它們與 openzipkin/zipkin-api Thrift 和 Proto 相容。