烏克蘭國旗 我們與在烏克蘭的朋友和同事站在一起。為了在他們有需要時支持烏克蘭,請訪問此頁面

開始使用

在您的本機環境中開始並執行 Jaeger

版本  1.62 最新

如果您是分散式追蹤的新手,請查看簡介頁面。

檢測

您的應用程式必須經過檢測才能將追蹤資料傳送至 Jaeger。我們建議使用 OpenTelemetry外部連結 檢測和 SDK。

過去,Jaeger 專案支援自己的 SDK(又稱追蹤器、客戶端函式庫),這些 SDK 實作了 OpenTracing API。自 2022 年起,Jaeger SDK 不再受支援,建議所有使用者移轉至 OpenTelemetry。

All in One

all-in-one 是一個可執行檔,旨在進行快速的本機測試。它包括 Jaeger UI、jaeger-collectorjaeger-queryjaeger-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。

容器會公開下列連接埠

連接埠通訊協定元件功能
6831UDP代理程式透過 Thrift-compact 通訊協定接受 jaeger.thrift (大多數 SDK 使用)
6832UDP代理程式透過 Thrift-binary 通訊協定接受 jaeger.thrift (Node.js SDK 使用)
5775UDP代理程式(已淘汰) 透過 compact Thrift 通訊協定接受 zipkin.thrift (僅限舊版用戶端使用)
5778HTTP代理程式提供設定 (取樣等)
16686HTTP查詢提供前端
4317HTTP收集器透過 gRPC 接受 OpenTelemetry 通訊協定 (OTLP)
4318HTTP收集器透過 HTTP 接受 OpenTelemetry 通訊協定 (OTLP)
14268HTTP收集器直接從用戶端接受 jaeger.thrift
14250HTTP收集器接受 model.proto
9411HTTP收集器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

從原始碼

為了從原始碼執行,您需要

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 Thriftexternal link IDL 和 Zipkin Protoexternal link IDL 檔案可以在 jaegertracing/jaeger-idlexternal link 儲存庫中找到。它們與 openzipkin/zipkin-apiexternal link Thriftexternal linkProtoexternal link 相容。