【发布时间】:2018-05-11 02:06:27
【问题描述】:
我想使用 Dropwizard 指标来获取我的 Spring Boot REST 控制器服务的每个请求的列表中的平均项目数。我的控制器接收一个序列化为RequestCollection 的字符串。 RequestCollection 有一个由 id 列表组成的 List<Integer> ids 字段。我想知道所有请求中ids 字段中的平均项目数。
控制器
@RestController
@RequestMapping("/api")
public class ApiController {
private MetricRegistry metricRegistry;
public ApiController(MetricRegistry metricRegistry) {
this.metricRegistry = metricRegistry;
}
@GetMapping
public String getFooBarred(
@RequestParam(value = "params") String requestItem
) {
RequestCollection request = request = new ObjectMapper()
.registerModule(new JavaTimeModule())
.readValue(requestItem, RequestCollection.class);
// Add metric here to metricRegistry for average number of items
// in RequestCollection across all requests.
// RequestCollection has a single property which is a List<Integer> ids
return "foobar";
}
}
这是 RequestCollection 类,我想在所有请求中测量其 ids 字段。
请求集合
public class RequestCollection {
private List<Integer> ids;
public RequestCollection() {
this.ids = new ArrayList<>();
}
public List<Integer> getIds() {
return ids;
}
}
【问题讨论】:
标签: java spring spring-boot dropwizard metrics