我最近将我的项目从spring boot 1.4.1、spring cloud Sleuth 1.1.0、spring cloud Zipkin 1.1.0升级到spring boot 1.5.3、spring cloud Sleuth 1.2.0、spring cloud Zipkin 1.2.0。
在最新版本的spring cloud Sleuth中,他们添加了“错误”标签,一旦出现任何异常,这些标签将自动报告给Zipkin。
我有一个@ControllerAdvice类扩展了用于自定义异常处理的ResponseEntityExceptionHandler。在使用旧版本(spring boot 1.4.1、spring cloud Sleuth 1.1.0、spring cloud Zipkin 1.1.0)时,我能够向跟踪器报告错误,并在Zipkin中可视化相同的错误,方法如下:
private void reportErrorSpan(String errorDesc, String message) {
if(tracer != null) {
Span span = tracer.getCurrentSpan();
span.logEvent("ERROR: " + message);
tracer.addTag("error", errorDesc);
}
}
在我升级后,这似乎不起作用,spring cloud Sleuth的默认错误报告也没有发生。只有在注释掉@ControllerAdvice并让spring boot的默认ErrorController来处理异常之后,我才能够在Zipkin中可视化错误。但是,我们需要自定义异常处理以标准的方式格式化错误响应,并使用所有PaaS服务中的错误代码。有办法做到这一点吗?我应该使用任何其他侦探对象来实现这一点吗?
该问题已修复-https://github.com/spring-cloud/spring-cloud-sleuth/issues/585。在即将发布的1.1.5和1.2.1中,它应该可以工作
在微服务环境中,我看到了通过整个业务流程中的所有微服务实例跟踪请求的两个主要好处。 查找服务实例之间或服务实例中的延迟间隙 寻找失败的根源,无论是技术上的还是关于商业案例的 Zipkin提供了一个解决第一个问题的工具。但是,如何使用跟踪来揭示微服务环境中的故障呢?我当然想跟踪所有受错误影响的范围,但不是每个请求,因为它们没有出错。如本文所述,可以使用自定义采样器。 或者,您可以注册自己的采样器be
我对以更详细的方式记录跟踪信息感兴趣。对于每个日志语句,我都希望以JSON格式发出zipkin跟踪--非常接近于这里描述的内容:https://zipkin.io/pages/data_model.html 在《侦探》中完成这一点的最佳方法是什么?
更新:我已将代码推送到我的回购协议中,以便人们可以查看那里,看看可能出现了什么问题。 编辑:我几乎可以肯定是客户端代码没有向服务器发布任何统计数据,但是下面的指南都没有解释如何启用:是否有我缺少的配置设置? 我一直在关注OpenZipkin和Spring Sleuth的快速启动:我从docker Zipkin使用和Cassandra作为后端运行Zipkin服务器: 我已经创建并运行了Spring
Sleuth没有将跟踪信息发送给Zipkin,尽管Zipkin运行良好。我使用的是spring 1.5.8.Release,spring cloud Dalston.sr4和我在我的微服务中添加了以下依赖项: 我的日志总是出现错误:[FOOMS,2E740F33C26E286D,2E740F33C26E286D,false] 我的Zipkin依赖项是: 为什么我的口供是假的而不是真的?但是,所有调
我正在尝试将sleuth集成到Spring Boot应用程序中,这样它就可以与zipkin服务器进行跟踪,但我的运气不太好。我已经学习了一些教程(链接到tutorial),让他们与zipkin对话没有问题,但是它不能很好地转换到我的应用程序中,我不确定该去哪里找。 基本上,在build.gradle文件的依赖项部分,我添加了: 并且,我将这些内容添加到application.properties文
从现有检测的Spring Boot应用程序向honeycomb-opentracing-proxy发送跟踪失败,代理控制台中出现以下错误: Spring Boot版本:2.1.3.发布Spring Cloud Sleuth版本:2.1.1.发布 应用程序.属性 如有任何帮助,我将不胜感激