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

入门

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

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

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

检测

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

历史上,Jaeger 项目支持自己的 SDK(也称作追踪器、客户端库),这些 SDK 实现了 OpenTracing API。截至 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.69.0

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

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

然后您可以导航到 http://localhost:16686 来访问 Jaeger UI。

容器暴露以下端口

端口协议组件功能
16686HTTPquery提供前端服务
4317HTTPcollector接受基于 gRPC 的 OpenTelemetry 协议 (OTLP)
4318HTTPcollector接受基于 HTTP 的 OpenTelemetry 协议 (OTLP)
14268HTTPcollector直接从客户端接受 jaeger.thrift
14250HTTPcollector接受 model.proto
9411HTTPcollectorZipkin 兼容端点(可选)

使用服务性能监控 (SPM)

请参考 服务性能监控 (SPM)

在 Kubernetes 上

请查看 Kubernetes Operator: https://github.com/jaegertracing/jaeger-operator外部链接 - Jaeger 分布式追踪平台

示例应用:HotROD

HotROD(按需打车服务)是一个演示应用程序,包含多个微服务,用于演示 OpenTelemetry外部链接 - Jaeger 分布式追踪平台 和分布式追踪的使用。博客文章中提供了一个教程/指南:体验 Jaeger 和 HotROD外部链接 - Jaeger 分布式追踪平台

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

特性

  • 通过数据驱动的依赖关系图探索整个系统的架构。
  • 查看请求时间线和错误;了解应用程序如何工作。
  • 查找延迟和缺乏并发的根源。
  • 高度上下文化的日志记录。
  • 使用 baggage propagation 来诊断请求间的争用(排队)以及服务中花费的时间。
  • 使用 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.69.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

然后导航到 http://localhost: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 分布式追踪平台 兼容。