ASP.NET Core利用Jaeger实现分布式追踪详解(2)

从上面这个图大概也能看出来,做了一些什么操作,请求来到AService,它就发起了HTTP请求到BService,BService则是先通过EasyCaching去取缓存,显然缓存中没数据,它就去读数据库了。

和另外的请求对比一下,可以发现是少了查数据库这一步操作的。这也是为什么上面的是10个span,而下面的才8个。

ASP.NET Core利用Jaeger实现分布式追踪详解

再来看看两个请求的对比图。

ASP.NET Core利用Jaeger实现分布式追踪详解

上图中那些红色和绿色的块就是两个请求的差异点了。

回去看看其他细节,可以发现类似下面的内容

ASP.NET Core利用Jaeger实现分布式追踪详解

有很多日志相关的东西,这些东西在这里可能没有太多实际的作用,我们可以通过调整日志的级别来不让它写入到Jaeger中。

或者是通过下面的方法来过滤

services.AddOpenTracing(new System.Collections.Generic.Dictionary<string,LogLevel> { {"AService", LogLevel.Information} });

最后就是依赖图了。

ASP.NET Core利用Jaeger实现分布式追踪详解

写在最后

虽说Jaeger用起来挺简单的,但是也是有点美中不足的,不过这个锅不应该是Jaeger来背的,主要还是很多我们常用的库没有直接的支持Diagnostic,所以能监控到的东西还是略少。

不过在github发现了ClrProfiler.Trace这个项目,可以通过clrprofiler来解决上面的问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdszsj.html