В Spring Boot 2 моя метрика HTTP-запросов по умолчанию будет включать такие теги исключений и ошибок:
http_server_requests_seconds_count{error = "NoResourceFoundException",exception = "NoResourceFoundException",method = "POST",outcome = "SERVER_ERROR",status = "500",uri = "/my-endpoint",} 4.0
Обновившись до Spring Boot 3, я обнаружил, что вызовы API с ошибками или исключениями не заполняют эти теги.
Как я могу добавить эти теги обратно в свои показатели?
Эта функциональность была удалена в микрометре Spring Boot 3.
Поскольку поддержка наблюдаемости была переписана в Spring Boot 3.0, мы больше не можем поддерживать этот атрибут запроса, поскольку поддержка наблюдаемости встроена непосредственно в Spring Framework (а ErrorAttributes находится в Spring Boot).
https://github.com/spring-projects/spring-framework/issues/31514
Вы можете вернуть эту функциональность, добавив некоторый код в обработчик исключений.
@ExceptionHandler
public ResponseEntity<MyResponse> handle(final HttpServletRequest request, final Exception exception) {
// This will add exception tags to your metrics
ServerHttpObservationFilter.findObservationContext(request).ifPresent(context -> context.setError(exception));
return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
}