在分布式追踪监控中详细地介绍了分布式追踪监控的思想以及Jaeger的环境搭建。下来详细地介绍下Jaeger分布式追踪监控的最佳实践和案例应用。在Jaeger中自带了HotROD的项目,使用该项目可以详细地演示下Jaeger分布式追踪监控的案例应用。首先搭建HotROD的环境,使用Docker搭建的命令如下:
docker run --rm -it --link jaeger -p8080-8083:8080-8083 jaegertracing/example-hotrod:1.6 all --jaeger-agent.host-port=jaeger:6831执行后输出的信息如下:
2022-06-02T10:29:53.774Z INFO cmd/root.go:74 Using expvar as metrics backend
2022-06-02T10:29:53.776Z INFO cmd/all.go:25 Starting all services
2022-06-02T10:29:53.971Z INFO log/logger.go:37 Starting {"service": "frontend", "address": "http://0.0.0.0:8080"}
2022-06-02T10:29:53.973Z INFO log/logger.go:37 Starting {"service": "route", "address": "http://0.0.0.0:8083"}
2022-06-02T10:29:54.085Z INFO log/logger.go:37 Starting {"service": "customer", "address": "http://0.0.0.0:8081"}
2022-06-02T10:29:54.088Z INFO log/logger.go:37 TChannel listening {"service": "driver", "hostPort": "[::]:8082"}显示如上信息后表示启动成功,下来在浏览器输入地址http://localhost:8080/就会显示HotROD的主页面:

在HotROD的应用程序中使用到的数据库是MySQL,中间件是Redis,点击Trom Chocolatier,就会返回请求成功后的调试信息,具体如下:

在Jarger的服务列表中就可以看到frontend等服务,具体如下:

选择服务frontend后,点击Find Traces后显示的最新的请求信息如下所示:

在请求中点击frontend就可以看到请求的完整链路,具体如下所示:

也可以查看各个请求段的耗时和响应时间,具体如下:

当然也可以看到各个链路之间的调用关系,具体如下所示:

查看详细的DAG的交互以及链路,具体如下:

在Jarger中可以看到各个想看的,比如调用过程中涉及到的SQL语句,具体如下:

也可以看到Redis出现红色的错误,具体如下:

在如上,可以看到它完整的分析信息,包含了耗时,链路,执行的SQL,以及Redis,以及DAG的资源和其他的信息,那么梳理出完整的请求链路,具体汇总如下:
在如上中,结合Jaeger自带的项目hotROD,可以看到使用该分布式追踪监控工具可以看到我们想看到的信息,以及定位和分析请求链路中到底是什么导致了问题的原因,可以说是非常的强大。本文章就总结的这里,后续逐步的继介绍Jaeger的埋点技术以及与SpringBoot,Django,Flask的整合。感谢您的阅读!