Sleuth / zipkin с ControllerAdvice не работает - PullRequest
0 голосов
/ 12 февраля 2019

Я обнаружил, что существует старая проблема Трассировка Sleuth / Zipkin с @ ControllerAdvice , но я сталкиваюсь с той же проблемой с последней версией (spring-cloud-starter-zipkin: 2.1.0.RELEASE),Я отлаживаю его и обнаруживаю, что ошибка нулевая, так что zipkin просто угадайте с помощью statuscode.Я должен снова сгенерировать исключение, чтобы zipkin уведомил об исключении

ошибка равна нулю

результат zipkin

ControllerAdvice

снова сгенерировать исключение, оно работает

1 Ответ

0 голосов
/ 19 февраля 2019

Совершенно очевидно, что это null.Это потому, что вы управляете тем, что происходит с пойманным исключением.В вашем случае ничего, потому что вы проглотите это исключение.

Если вы хотите сделать что-то лучше, просто добавьте тег ошибки вручную через SpanCustomizer.Таким образом, вы добавите исключение к данному диапазону.Затем он автоматически закроется и сообщится Зипкину (конечно, вы можете сделать что-то еще, кроме ex.toString().

@Slf4j
@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class ExceptionHanders {

    private final SpanCustomizer customizer;

    public ExceptionHanders(SpanCustomizer customizer) {
        this.customizer = customizer;
    }

    @ExceptionHandler({RuntimeException.class})
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public String handleRuntimeException(Exception ex) throws Exception {
        this.customizer.tag("error", ex.toString());
        return "testabcd";
    }
}
...