可观测性

Spring Data MongoDB 目前拥有最新的代码来支持您在 MongoDB 应用程序中的可观测性。然而,这些更改尚未被 Spring Boot(尚)采纳。在这些更改应用之前,如果您希望使用 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 Semantic Conventions 以获取进一步参考。