Ukraine flag 我们与乌克兰的朋友和同事们站在一起。如需支持处于困境中的乌克兰,请访问此页面

入门

在本地环境中快速启动并运行 Jaeger

版本  1.71 最新 前往最新的 2.x 版本

如果您不熟悉分布式追踪,请查看简介页面。

埋点

您的应用程序必须进行埋点,才能将追踪数据发送到 Jaeger。我们建议使用 OpenTelemetry外部链接 - Jaeger 分布式追踪平台 埋点和 SDK。

过去,Jaeger 项目支持实现 OpenTracing API 的自有 SDK(也称为追踪器、客户端库)。截至 2022 年,Jaeger SDK 不再受支持,建议所有用户迁移到 OpenTelemetry。

一体化部署

all-in-one 是一个专为快速本地测试而设计的可执行文件。它包含 Jaeger UI、jaeger-collectorjaeger-query,并带有一个内存存储组件。

启动一体化部署的最简单方法是使用发布到 DockerHub 的预构建镜像(一条命令行即可)。

docker run --rm --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -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.71.0

或者从二进制分发归档文件中运行 jaeger-all-in-one(.exe) 可执行文件

jaeger-all-in-one --collector.zipkin.host-port=:9411

然后,您可以访问 https://:16686 来使用 Jaeger UI。

容器暴露以下端口

端口协议组件功能
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外部链接 - Jaeger 分布式追踪平台

示例应用程序:HotROD

HotROD (Rides on Demand) 是一个演示应用程序,由多个微服务组成,并展示了 OpenTelemetry外部链接 - Jaeger 分布式追踪平台 和分布式追踪的使用。博客文章中提供了教程/演练:《带 Jaeger 一起体验 HotROD外部链接 - Jaeger 分布式追踪平台》。

HotROD 应用程序可以独立运行,但需要 Jaeger 后端才能查看追踪。

功能

  • 通过数据驱动的依赖关系图发现整个系统的架构。
  • 查看请求时间线和错误;了解应用程序的工作原理。
  • 查找延迟和并发性不足的来源。
  • 高度情境化的日志记录。
  • 使用 baggage 传播来诊断请求间争用(排队)以及服务中花费的时间。
  • 使用 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.71.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://:8080

从 Zipkin 迁移

jaeger-collector 服务公开了兼容 Zipkin 的 REST API /api/v1/spans,它接受 Thrift 和 JSON 格式。此外还有 /api/v2/spans 用于 JSON 和 Proto。默认情况下,此功能是禁用的。可以通过 --collector.zipkin.host-port=:9411 启用。

Zipkin Thrift外部链接 - Jaeger 分布式追踪平台 IDL 和 Zipkin Proto外部链接 - Jaeger 分布式追踪平台 IDL 文件可以在 jaegertracing/jaeger-idl外部链接 - Jaeger 分布式追踪平台 仓库中找到。它们与 openzipkin/zipkin-api外部链接 - Jaeger 分布式追踪平台 Thrift外部链接 - Jaeger 分布式追踪平台Proto外部链接 - Jaeger 分布式追踪平台 兼容。