私は最近、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。@ControllerAdviceを使ったSleuth/Zipkinトレース
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);
}
}
私がアップグレードした後、これはうまくいかないように見え、春の雲のデフォルトのエラー報告も起こっていませんでした。 @ControllerAdviceをコメントアウトし、Spring BootのデフォルトのErrorControllerに例外を処理させた後で、私はZipkinのエラーを視覚化することができました。ただし、すべてのPaaSサービスでエラーコードを標準的な方法でエラーレスポンスをフォーマットするには、カスタム例外処理が必要です。これを行う方法はありますか?これを達成するために他のどのSleuthオブジェクトを使うべきですか?
サンプルをどこかに投稿して、これをデバッグできますか?そうすれば、使用しているSleuth/Bootのバージョンとこれを複製する方法を知ることができます。 –
@MarcinGrzejszczak私はSpring Boot 1.5.3.RELEASEとSpring Cloud Sleuth/Zipkin 1.2.0.RELEASEを使用しています。私は実際のプロジェクトを投稿することはできません。サンプルを作成しようとします。 –
それはすばらしいと非常に役に立つでしょう:) –