MongoDB 的 Spring Boot Micrometer 指标

Win*_*ter 3 mongodb spring-boot spring-boot-actuator spring-micrometer

我使用 spring boot 2.2.5 + 千分尺 1.3.5 + starter-data-mongodb

在“io.micrometer.core.instrument.binder.mongodb”下,我可以看到 2 个类 CommandListener 和 ConnectionPoolListener。我想知道这些有什么作用?

在执行器指标端点中,mongo 指标不可用。

如何在执行器中为 mongodb 启用指标?例如,actuator 会自动显示 RabbitMQ 的几个指标。在 MongoDB 的情况下,我也期待类似的东西。我应该创建自己的指标吗?

chr*_*gue 5

为了启用 Spring Boot 应用其 AutoConfiguration,我建议使用定制器模式:

科特林:

@Configuration
class MongoConfiguration {

    @Bean
    fun mongoClientSettingsBuilderCustomizer(meterRegistry: MeterRegistry) =
        MongoClientSettingsBuilderCustomizer {
           it.addCommandListener(MongoMetricListener(meterRegistry))}
}
Run Code Online (Sandbox Code Playgroud)

爪哇:

@Configuration
public class MongoConfiguration {

   @Bean
   public MongoClientSettingsBuilderCustomizer mongoClientSettingsBuilderCustomizer(MeterRegistry meterRegistry) {
        return builder -> builder.addCommandListener(new MongoMetricsCommandListener(meterRegistry));
   }

}
Run Code Online (Sandbox Code Playgroud)

请注意,您目前不会在指标中看到与 spring 数据存储库和 mongo 集合的关系。查看未解决的问题


编辑(07/30/2021):

这些问题已得到修复,因此您可能会在当前版本中获得收集指标。