我正在使用 Micrometer 项目在我的 spring boot 2.x 应用程序中发布指标。
我已经实现了两个MeterRegistry
(StepMeterRegistry
和SimpleMeterRegistry
),所以 spring boot 在内部创建CompositeMeterRegistry
了一组 StepMeterRegistry 和 SimpleMeterRegistry。
现在,我正在使用/actuator/metrics
端点来查看当前指标计数。
实现MetricsEndpoint
如下:
- 它将从 compositeMeterRegistry 获取第一个注册表并显示指标。
所以现在问题如下: -compositeMeterRegistry
管理设置,因此不能保证顺序,但我只想SimpleMeterRegistry
为'/actuator/metrics'
端点发布。
我遵循的当前解决方法是为 MetricsEndpoint 创建 @Primary bean 并提供 SimpleMeterRegistry。
@Primary
@Bean
public MetricsEndpoint metricsEndpoint(SimpleMeterRegistry registry) {
return new MetricsEndpoint(registry);
}
由于千分尺现在由Spring管理,他们为什么不在CompositeMeterRegistry中保留注册表的List或LinkedHashSet 。它对开发人员来说很容易使用。