Мы используем теги span на основе аннотаций для тегирования значений метода и запроса объекта в контроллере. Мы видели два поведения
- При возникновении ошибки или ошибки объект трассировки во время выполнения получает статус http 500 и ожидаемое сообщение об ошибке.
- При успешном вызове API в объекте span не отображается тег кода состояния http, который должен быть 200 ok.
Мы не можем включить объект ответа API в span.
Вызов API-контроллера выглядит так:
@PostMapping(path = "/{reuqestParam}/submit")
@ContinueSpan(log = "submit")
public IngestionResponse submit(final InputStream inputStream,
@SpanTag("reuqestParam") @PathVariable String reuqestParam,
@SpanTag("HttpHeaders") @RequestHeader HttpHeaders httpHeaders) {
LOGGER.info("[Upload to Stream]: Begin");
final IngestionResponse ingestionResponse = ingestionService
.ingestInputStream(inputStream, reuqestParam, httpHeaders);
LOGGER.info("[Upload to Stream]: Completed");
return ingestionResponse;
}
Объект Span содержит параметр параметра / имя метода, но отсутствует код состояния HTTP и объект ответа. Нам нужно захватить обе информации независимо от того, был ли успешным или неудачным API.