可観測性

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 の Observability を使用するには、次のことが必要です。

  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. Spring Boot の自動構成された MongoDB コマンドリスナーを無効にし、次のプロパティを application.properties に追加して手動でトレースを有効にします。

    例 2: 適用するカスタム設定
    # Disable Spring Boot's autoconfigured tracing
    management.metrics.mongo.command.enabled=false
    # Enable it manually
    management.tracing.enabled=true

    Micrometer のリファレンスドキュメントに基づいて、使用しているトレーサを構成するために必要なその他の関連設定を必ず追加してください。

これで済むはずです! 現在、Spring Observability の Observation API を Spring Data MongoDB が使用して実行しています。詳細については、OpenTelemetry セマンティック規則 (英語) も参照してください。