入门
在本地环境中启动并运行 Jaeger
如果您是分布式跟踪的新手,请查看 简介 页面。
检测
您的应用程序必须在可以将跟踪数据发送到 Jaeger 之前进行检测。我们建议使用 OpenTelemetry 检测和 SDK。
历史上,Jaeger 项目支持自己的 SDK(也称为跟踪器、客户端库)来实现 OpenTracing API。截至 2022 年,Jaeger SDK 不再受支持,所有用户都建议迁移到 OpenTelemetry。
一体化
一体化 是一款专为快速本地测试而设计的可执行文件。它包括 Jaeger UI、jaeger-collector、jaeger-query 和 jaeger-agent,以及一个内存存储组件。
启动一体化的最简单方法是使用发布到 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 | 代理 | 接受 jaeger.thrift 通过 Thrift-compact 协议(大多数 SDK 使用) |
6832 | UDP | 代理 | 接受 jaeger.thrift 通过 Thrift-binary 协议(Node.js SDK 使用) |
5775 | UDP | 代理 | (已弃用) 接受 zipkin.thrift 通过紧凑的 Thrift 协议(仅供旧版客户端使用) |
5778 | HTTP | 代理 | 服务配置(采样等) |
16686 | HTTP | 查询 | 服务前端 |
4317 | HTTP | 收集器 | 接受 OpenTelemetry 协议 (OTLP) 通过 gRPC |
4318 | HTTP | 收集器 | 接受 OpenTelemetry 协议 (OTLP) 通过 HTTP |
14268 | HTTP | 收集器 | 直接从客户端接受 jaeger.thrift |
14250 | HTTP | 收集器 | 接受 model.proto |
9411 | HTTP | 收集器 | 与 Zipkin 兼容的端点(可选) |
使用服务性能监控 (SPM)
请参考 服务性能监控 (SPM) 。
在 Kubernetes 上
请查看 Kubernetes 运算符:https://github.com/jaegertracing/jaeger-operator
示例应用程序:HotROD
HotROD(按需骑行)是一个演示应用程序,它包含几个微服务,并说明了使用 OpenTelemetry 和分布式跟踪。博客文章中提供了一个教程/演练:让 Jaeger 畅快骑行 。
HotROD 应用程序可以独立运行,但需要 Jaeger 后端才能查看跟踪。
功能
- 通过数据驱动的依赖关系图发现整个系统的架构。
- 查看请求时间线和错误;了解应用程序的工作原理。
- 查找延迟和缺乏并发性的来源。
- 高度上下文化的日志记录。
- 使用行李标签传播来诊断请求间竞争(排队)以及服务中花费的时间。
- 使用
opentelemetry-contrib
中的开源库免费获得供应商中立的检测。
正在运行
我们建议通过 docker compose
一起运行 Jaeger 和 HotROD。
使用 Docker Compose
git clone [email protected]: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 [email protected]: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 。