У меня есть приложение Spring Boot, интегрированное с Dropwizard Metrics по этой ссылке .
Когда я добавил аннотацию @Timed
в некоторые API (методы контроллера), она отображалась в ссылке на метрики.
Например, для ниже RestController
:
@RestController
public class TestController {
@GET
@Path("/ping")
@Timed
@ApiOperation("Ping server")
public Response Ping() {
return Response.ok().build();
}
}
, то результат будет следующим:
"timers": {
"com.test.testcontroller.Ping": {
"count": 0,
"max": 0.0,
"mean": 0.0,
"min": 0.0,
"p50": 0.0,
"p75": 0.0,
"p95": 0.0,
"p98": 0.0,
"p99": 0.0,
"p999": 0.0,
"stddev": 0.0,
"m15_rate": 0.0,
"m1_rate": 0.0,
"m5_rate": 0.0,
"mean_rate": 0.0,
"duration_units": "seconds",
"rate_units": "calls/second"
}
}
У меня около 20 контроллеров с в общей сложности 130 API (методами), поэтому я хотел бы настроить широкую аннотацию или автоматически ввести аннотацию @Timed
. Что-то вроде:
@RestController
@Timed
public class TestController {
@GET
@Path("/ping")
@ApiOperation("Ping server")
// timed will auto applied in here
public Response Ping() {
return Response.ok().build();
}
}
Как я могу этого добиться?