首页 > 解决方案 > MongoDB 的 Spring Boot Micrometer 指标

问题描述

我使用 spring boot 2.2.5 + micrometer 1.3.5 + starter-data-mongodb

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

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

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

标签: mongodbspring-bootspring-boot-actuatorspring-micrometer

解决方案


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

科特林:

@Configuration
class MongoConfiguration {

    @Bean
    fun mongoClientSettingsBuilderCustomizer(meterRegistry: MeterRegistry) =
        MongoClientSettingsBuilderCustomizer {
           it.addCommandListener(MongoMetricCommandListener(meterRegistry))}
}

爪哇:

@Configuration
public class MongoConfiguration {

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

}

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


编辑(2021 年 7 月 30 日):

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


推荐阅读