如何读取 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 MetricReader
或 MetricRepository
(后者是 MetricReader
和 MetricWriter
的组合)并调用 findOne
.
我正在使用 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 MetricReader
或 MetricRepository
(后者是 MetricReader
和 MetricWriter
的组合)并调用 findOne
.