Я использую Jager для отслеживания моего весеннего загрузочного веб-сервиса. Но поскольку у нас есть веб-клиент (асинхронные) вызовы в нисходящих системах, jaeger не может его отследить. Я пытался идти по весеннему маршруту, но когда я вижу следы, они просто отображаются как «asyn c» в пользовательском интерфейсе jaeger и никаких других деталей. Мне было интересно, как я могу получить дополнительные сведения, такие как URL, на который был сделан вызов asyn c.
Вызов веб-клиента -
public Mono<SomeRestResponse> makeWebClientCall(
SomeConfigDetails someConfigDetails, String accountId, HttpHeaders headers) {
String url = domainBankApi + someConfigDetails.getRestUri();
return this.webClient
.get()
.uri(someConfigDetails.getRestURI(), accountId)
.headers(httpsHeaders -> httpsHeaders.putAll(headers))
.retrieve()
.onStatus(
HttpStatus::isError,
clientResponse -> {
if (clientResponse.statusCode() != HttpStatus.NOT_FOUND) {
log.error(
String.format(
"WebClient Error: %s, URI: %s",
clientResponse.statusCode(), url));
}
return Mono.empty();
})
.bodyToMono(SomeRestResponse.class)
.timeout(Duration.ofMillis(Long.valueOf(someConfigDetails.getRestTimeoutMS())))
.onErrorResume(
e -> {
log.error(
String.format(
"WebClient Error: %s, URI: %s", e.toString(), url),
e);
return Mono.empty();
});
}
Jaeger - введите описание изображения здесь