分布式跟踪系列

CAT

cat monitor 分布式监控 CAT-是什么?

cat monitor-02-分布式监控 CAT埋点

cat monitor-03-深度剖析开源分布式监控CAT

cat monitor-04-cat 服务端部署实战

cat monitor-05-cat 客户端集成实战

cat monitor-06-cat 消息存储

skywalking

监控-skywalking-01-APM 监控入门介绍

监控-skywalking-02-深入学习 skywalking 的实现原理的一些问题

监控-skywalking-03-深入浅出介绍全链路跟踪

监控-skywalking-04-字节码增强原理

监控-skywalking-05-in action 实战笔记

监控-skywalking-06-SkyWalking on the way 全链路追踪系统的建设与实践

其他

开源分布式系统追踪-00-overview

开源分布式系统追踪-01-Zipkin-01-入门介绍

开源分布式系统追踪 02-pinpoint-01-入门介绍

开源分布式系统追踪-03-CNCF jaeger-01-入门介绍

Jaeger

Jaeger是一个分布式追踪平台,由Uber Technologies于2016年发布为开源项目,并捐赠给Cloud Native Computing Foundation(CNCF),目前已成为CNCF的毕业项目。

通过Jaeger,您可以:

  • 监控和排查分布式工作流
  • 识别性能瓶颈
  • 查找根本原因
  • 分析服务依赖关系

windows10 docker

$ docker -version
Command 'docker' not found, but can be installed with:
sudo snap install docker         # version 27.2.0, or
sudo apt  install docker.io      # version 24.0.7-0ubuntu2~22.04.1
sudo apt  install podman-docker  # version 3.4.4+ds1-1ubuntu1.22.04.2
See 'snap info docker' for additional versions.

执行安装

sudo snap install docker 

验证

$ docker --version
Docker version 27.2.0, build 3ab4256

一体化配置

运行 Jaeger 最简单的方法是通过容器启动:

sudo docker run --rm --name jaeger \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 5778:5778 \
  -p 9411:9411 \
  jaegertracing/jaeger:2.1.0

发现下载不到,特别慢。

这将运行 Jaeger 的一体化配置(参见架构),该配置将收集器和查询组件合并在一个进程中,并使用短暂的内存存储来存储追踪数据。

您可以访问 http://localhost:16686 来访问 Jaeger UI。有关完整的端口列表,请参见API页面

在应用程序向 Jaeger 发送追踪数据之前,必须先进行仪器化。我们推荐使用 OpenTelemetry 仪器化和 SDK。

🚗 HotROD 演示

HotROD(Rides on Demand)是一个示例应用程序,由多个微服务组成,演示了如何使用 OpenTelemetry 和分布式追踪。

您可以在博客文章中找到详细的教程:Take Jaeger for a HotROD ride

通过使用这个应用程序,您可以:

  • 通过数据驱动的依赖关系图发现整个系统的架构。
  • 查看请求时间线和错误,理解应用程序的工作原理。
  • 查找延迟和并发性不足的源头。
  • 探索高度上下文化的日志。
  • 使用行李传播来诊断请求间的竞争(排队)和在服务中消耗的时间。
  • 使用来自 opentelemetry-contrib 的开源库,免费获取供应商中立的仪器化。

我们推荐通过 Docker Compose 一起运行 Jaeger 和 HotROD:

git clone https://github.com/jaegertracing/jaeger.git jaeger
cd jaeger/examples/hotrod
docker compose -f docker-compose-v2.yml up
# 按 Ctrl-C 退出

然后访问 http://localhost:8080。有关其他运行演示的方法,请参见 README 文件。

服务性能监控(SPM)

服务性能监控(SPM)页面有一个快速入门,展示了如何探索 Jaeger 中的这一功能。

小结

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

参考资料

https://www.jaegertracing.io/docs/2.1/