可观测性

MongoDB Java 驱动程序 5.7+ 直接内置了可观测性。我们建议切换到驱动程序原生的 ObservabilitySettings,其配置方式如下所述。

@Bean
MongoClientSettingsBuilderCustomizer mongoDbObservabilitySettings(ObservationRegistry registry) {
    return (clientSettingsBuilder) -> {
        clientSettingsBuilder.observabilitySettings(ObservabilitySettings.micrometerBuilder()
                .observationRegistry(observationRegistry)
                .build());
    };
}

鉴于驱动程序原生的可观测性支持,Spring Data 提供的 org.springframework.data.mongodb.observability 包中的类型将不再进一步开发,并将在后续版本中弃用/移除。

要使用 Spring Data MongoDB 的可观测性功能,您必须:

  1. 通过在您的 @SpringBootApplication 类或其中一个配置类中自定义 MongoClientSettings 来选择 Spring Data MongoDB 的配置设置。

    示例 1. 注册 MongoDB Micrometer 定制器设置
    @Bean
    MongoClientSettingsBuilderCustomizer mongoMetricsSynchronousContextProvider(ObservationRegistry registry) {
        return (clientSettingsBuilder) -> {
            clientSettingsBuilder.contextProvider(ContextProviderFactory.create(registry))
                                 .addCommandListener(new MongoObservationCommandListener(registry));
        };
    }
  2. 您的项目必须包含 Spring Boot Actuator

  3. 通过向 application.properties 添加以下属性来禁用 Spring Boot 自动配置的 MongoDB 命令监听器并手动启用跟踪:

    示例 2. 要应用的自定义设置
    # Disable Spring Boot's autoconfigured tracing
    management.metrics.mongo.command.enabled=false
    # Enable it manually
    management.tracing.enabled=true

    请务必根据 Micrometer 的参考文档添加配置您正在使用的跟踪器所需的任何其他相关设置。

这样就完成了!您现在正在使用 Spring Data MongoDB 对 Spring 可观测性 Observation API 的利用。另请参阅 OpenTelemetry 语义约定 以获取更多参考。

© . This site is unofficial and not affiliated with VMware.