使用@ControllerAdvice进行侦听/ Zipkin跟踪

时间:2017-05-04 18:47:51

标签: spring-boot zipkin spring-cloud-sleuth

我最近将我的项目从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)时,我能够使用以下方法向Tracer报告错误并在Zipkin中显示错误:

private void reportErrorSpan(String errorDesc, String message) {
    if(tracer != null) {
        Span span = tracer.getCurrentSpan();
        span.logEvent("ERROR: " + message);
        tracer.addTag("error", errorDesc);
    }
}

升级之后,这似乎不起作用,而且Spring spring侦探的默认错误报告也没有发生。只有在注释掉@ControllerAdvice并让Spring Boot的默认ErrorController处理异常之后,我才能看到Zipkin中的错误。但是,我们需要自定义异常处理,以标准方式格式化错误响应,并在所有PaaS服务中使用错误代码。有没有办法做到这一点?我应该使用任何其他Sleuth对象来实现这一目标吗?

0 个答案:

没有答案