我试图将Dropwizard指标添加到Spring Boot控制器方法。
如下:
@RestController
@RequestMapping(value = "/api/plan")
@ExposesResourceFor(Plan.class)
public class PlanController implements RelProvider {
...
@Timed(name = "my.metric")
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/hal+json;charset=UTF-8")
public ResponseEntity<Resource<Plan>> getPlan(@PathVariable String id) {
Plan plan = service.getPlan(id);
return createResponse(HttpStatus.OK, plan);
}
将@Timed(name = "my.metric")
添加到任何控制器请求处理方法后 - 所有方法都开始响应404.
没有@Timed
注释方法控制器工作正常。将@Timed
放到其他类的方法上也可以正常工作。
答案 0 :(得分:0)
问题出在RelProvider界面上。 您的代理需要是CGLIB,而不是JDK动态代理。 您可以删除界面或在EnableMetrics注释中更改set proxyTargetClass = true。