如何读取 Spring 引导指标值?

How to read Spring Boot metric values?

我正在使用 Spring 引导指标 http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metrics 来管理一些特定于域的计数器。

我的 类 中有 @Autowired org.springframework.boot.actuate.metrics.CounterService,我正在增加特定领域事件的指标(解析我的请求的各个阶段)。

我想在我的测试中读取这些指标(以检查我的测试请求是否通过了所有必需的阶段),但是 CounterService 上没有 get 方法。我看到 CounterService 的所有实现都有一些带有指标的 private ConcurrentMap,但是没有(干净的)方法来获取此数据结构。

我正在使用 Spring 启动 1.3.5.RELEASE .

编辑: 我对集成测试很感兴趣,如果可能的话我不想模拟任何组件。

目前我正在对 /metric 端点​​使用 REST 调用并解析返回的 json,但我不喜欢这种方法。

一种方法是使用模拟 CounterService,然后验证是否已在模拟上调用预期的方法。

如果您更喜欢集成测试,那么您可以使用 MetricReader 读取 CounterService 编写的指标。你应该能够 @Autowire a MetricReaderMetricRepository (后者是 MetricReaderMetricWriter 的组合)并调用 findOne.