1

最近、プロジェクトを 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 に自動的に報告される「エラー」タグが追加されていることをお読みください。

カスタム例外処理のために ResponseEntityExceptionHandler を拡張する @ControllerAdvice クラスがあります。以下の方法を使用して、古いバージョン (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 サービスでエラー コードを使用して標準的な方法でエラー応答をフォーマットするには、カスタムの例外処理が必要です。これを行う方法はありますか?これを実現するには、他の Sleuth オブジェクトを使用する必要がありますか?

4

1 に答える 1

1

問題は修正されました - https://github.com/spring-cloud/spring-cloud-sleuth/issues/585。今後のリリース 1.1.5 および 1.2.1 では動作するはずです。

于 2017-05-08T09:12:55.147 に答える