Skip to content

Both Metrics and Observations in Spring #4926

Closed as not planned
Closed as not planned
@tushar-sharma

Description

@tushar-sharma

I followed the Spring's documentation to see traces in Mongodb by adding the bean

@Bean
MongoClientSettingsBuilderCustomizer mongoMetricsSynchronousContextProvider(ObservationRegistry registry) {
    return (clientSettingsBuilder) -> {
        clientSettingsBuilder.contextProvider(ContextProviderFactory.create(registry))
                             .addCommandListener(new MongoObservationCommandListener(registry));
    };
}

and adding the following properties to :

# Disable Spring Boot's autoconfigured tracing
management.metrics.mongo.command.enabled=false
# Enable it manually
management.tracing.enabled=true

I can see the traces in the zipkins. However my question was since, Spring Already provides an autoconfiguration class metrics MongoAutoConfiguration.

@AutoConfiguration(before = MongoAutoConfiguration.class,
        after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MongoClientSettings.class)
@ConditionalOnBean(MeterRegistry.class)
public class MongoMetricsAutoConfiguration {

    @ConditionalOnClass(MongoMetricsCommandListener.class)
    @ConditionalOnProperty(name = "management.metrics.mongo.command.enabled", havingValue = "true",
            matchIfMissing = true)
    static class MongoCommandMetricsConfiguration {

    

        @Bean
        MongoClientSettingsBuilderCustomizer mongoMetricsCommandListenerClientSettingsBuilderCustomizer(
                MongoMetricsCommandListener mongoMetricsCommandListener) {
            return (clientSettingsBuilder) -> clientSettingsBuilder.addCommandListener(mongoMetricsCommandListener);
        }

Why do we need to disable bean from MongoAutoConfiguration? Can’t we got both metrics and traces?

Metadata

Metadata

Assignees

No one assigned

    Labels

    for: stackoverflowA question that's better suited to stackoverflow.com

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions