Я пытаюсь измерить коды состояния HTTP-ответа и отправить их в графит в scala с приложением Spring Boot без использования SpringBoot Actuator.
Я использую metrics-spring
из ryantenney для интеграции показателей dropwizard с SpringBoot. Он очень хорошо работает для сбора показателей таймеров, но при измерении кодов состояния я захожу в тупик.
@Timed
аннотации, похоже, не измеряют его, а @ResponseMetered
, похоже, не поддерживается библиотекой ryantenney.
Вот как выглядит мой код:
@RestController
@RequestMapping
class NameResource {
@ResponseMetered(name = "endpoints.getNameInfo.status", absolute = true)
@Timed(name = "endpoints.getNameInfo.time", absolute = true)
@ExceptionMetered(name = "endpoints.getNameInfo.fails", absolute = true)
@GetMapping(path = Array("names/{nameId}"), produces = Array(MediaType.APPLICATION_JSON_VALUE))
def getNameInfo(request: HttpServletRequest, nameId: String): DeferredResult[ResponseEntity[_]] = {
...
}
}
Мой класс конфигурации, создающий bean-компонент репортера, имеет @EnableMetrics(proxyTargetClass=true)
Есть ли какое-нибудь простое решение / обходной путь для этого?
Я нашел статью , в которой говорилось, что код состояния HTTP отслеживается для каждой конечной точки, помеченной @Timed
, однако у меня это не сработало.
Здесь вот как я ожидал увидеть показатели, основанные на кодах статуса http в графите: