乌克兰国旗 我们与乌克兰的朋友和同事站在一起。 为了支持乌克兰在这个困难的时刻 访问此页面.

入门

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

版本  1.62 最新

如果您是分布式跟踪的新手,请查看 简介 页面。

检测

您的应用程序必须在可以将跟踪数据发送到 Jaeger 之前进行检测。我们建议使用 OpenTelemetry外部链接 检测和 SDK。

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

一体化

一体化 是一款专为快速本地测试而设计的可执行文件。它包括 Jaeger UI、jaeger-collectorjaeger-queryjaeger-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。

该容器公开了以下端口

端口协议组件功能
6831UDP代理接受 jaeger.thrift 通过 Thrift-compact 协议(大多数 SDK 使用)
6832UDP代理接受 jaeger.thrift 通过 Thrift-binary 协议(Node.js SDK 使用)
5775UDP代理(已弃用) 接受 zipkin.thrift 通过紧凑的 Thrift 协议(仅供旧版客户端使用)
5778HTTP代理服务配置(采样等)
16686HTTP查询服务前端
4317HTTP收集器接受 OpenTelemetry 协议 (OTLP) 通过 gRPC
4318HTTP收集器接受 OpenTelemetry 协议 (OTLP) 通过 HTTP
14268HTTP收集器直接从客户端接受 jaeger.thrift
14250HTTP收集器接受 model.proto
9411HTTP收集器与 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

从源代码

为了从源代码运行,您需要

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 的 Thriftexternal link IDL 和 Zipkin Protoexternal link IDL 文件可以在 jaegertracing/jaeger-idlexternal link 仓库中找到。它们兼容于 openzipkin/zipkin-apiexternal link Thriftexternal linkProtoexternal link