本教程展示如何通过将Jaeger与S pring Boot一起使用来在微服务中启用分布式跟踪。
Jaeger是最初由Uber开发的分布式跟踪平台。它用于基于微服务的体系结构的监视和故障排除。它有一个漂亮的用户界面,可以清楚地显示完整的请求详细信息和处理时间等。
<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-spring-jaeger-web-starter</artifactId> <version>1.0.3</version> </dependency>
|
server: port: 8080 opentracing: jaeger: udp-sender: host: localhost port: 6831
|
有了上述依赖关系,Jaeger-agent将通过Spring Boot自动配置,并开始跟踪所有请求和处理时间等。使用Jaeger依赖关系进行更新后,重建应用程序和docker映像。
Jaeger代理开始收集指标后,必须将详细信息发布到某个地方–这样我们就可以开始在UI上进行检查了。因此,请在您的计算机上下载并安装Jaeger。默认情况下,它使用UDP端口6831收集详细信息。它还支持其他协议。请访问Jaeger网站以获取更多详细信息。让我们一起去UDP,因为它是一个4层协议,它是非常快的相比HTTP。
使用docker设置Jaeger并运行非常容易!下面的docker-compose文件提供了包括3个微服务在内的完整设置。version: "3" services: fact-service: image: vinsdocker/fact-service environment: - ACTIVE_PROFILE=prod - SPRING_APPLICATION_NAME=fact fib-service: image: vinsdocker/fib-service environment: - ACTIVE_PROFILE=prod - SPRING_APPLICATION_NAME=fib compute-service: image: vinsdocker/compute-service environment: - ACTIVE_PROFILE=prod - SPRING_APPLICATION_NAME=compute ports: - 8080:8080 jaeger: image: jaegertracing/all-in-one:1.17 ports: - 8090:16686
|
完整的工作源代码在这里。