Move MongoDB metrics auto-configuration into spring-boot-mongodb

This commit is contained in:
Andy Wilkinson
2025-05-20 11:04:13 +01:00
committed by Phillip Webb
parent fedc08a757
commit 3bafb6e0ff
7 changed files with 20 additions and 23 deletions

View File

@@ -42,7 +42,6 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-jsonb"))
optional(project(":spring-boot-project:spring-boot-kafka"))
optional(project(":spring-boot-project:spring-boot-metrics"))
optional(project(":spring-boot-project:spring-boot-mongodb"))
optional(project(":spring-boot-project:spring-boot-r2dbc"))
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
optional(project(":spring-boot-project:spring-boot-restclient"))
@@ -130,7 +129,6 @@ dependencies {
optional("org.springframework.batch:spring-batch-core")
optional("org.springframework.data:spring-data-couchbase")
optional("org.springframework.data:spring-data-jpa")
optional("org.springframework.data:spring-data-mongodb")
optional("org.springframework.data:spring-data-redis")
optional("org.springframework.graphql:spring-graphql")
optional("org.springframework.kafka:spring-kafka")

View File

@@ -41,7 +41,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetri
org.springframework.boot.actuate.autoconfigure.metrics.export.stackdriver.StackdriverMetricsExportAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.jersey.JerseyServerMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.mongo.MongoMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.orm.jpa.HibernateMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.r2dbc.ConnectionPoolMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.redis.LettuceMetricsAutoConfiguration

View File

@@ -14,6 +14,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional(project(":spring-boot-project:spring-boot-docker-compose"))
optional(project(":spring-boot-project:spring-boot-metrics"))
optional(project(":spring-boot-project:spring-boot-reactor"))
optional(project(":spring-boot-project:spring-boot-testcontainers"))
optional("io.netty:netty-transport")

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.mongo;
package org.springframework.boot.mongodb.actuate.metrics.autoconfigure;
import com.mongodb.MongoClientSettings;
import io.micrometer.core.instrument.MeterRegistry;
@@ -31,8 +31,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration;
import org.springframework.boot.mongodb.autoconfigure.MongoClientSettingsBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -42,11 +40,11 @@ import org.springframework.context.annotation.Bean;
*
* @author Chris Bono
* @author Jonatan Ivanov
* @since 2.5.0
* @since 4.0.0
*/
@AutoConfiguration(before = MongoAutoConfiguration.class,
after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@ConditionalOnClass(MongoClientSettings.class)
afterName = "org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration")
@ConditionalOnClass({ MongoClientSettings.class, MeterRegistry.class })
@ConditionalOnBean(MeterRegistry.class)
public class MongoMetricsAutoConfiguration {

View File

@@ -15,6 +15,6 @@
*/
/**
* Auto-configuration for Mongo metrics.
* Auto-configuration for MongoDB metrics.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.mongo;
package org.springframework.boot.mongodb.actuate.metrics.autoconfigure;

View File

@@ -1,2 +1,3 @@
org.springframework.boot.mongodb.actuate.metrics.autoconfigure.MongoMetricsAutoConfiguration
org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration
org.springframework.boot.mongodb.autoconfigure.MongoReactiveAutoConfiguration

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.mongo;
package org.springframework.boot.mongodb.actuate.metrics.autoconfigure;
import java.util.List;
@@ -29,10 +29,10 @@ import io.micrometer.core.instrument.binder.mongodb.MongoCommandTagsProvider;
import io.micrometer.core.instrument.binder.mongodb.MongoConnectionPoolTagsProvider;
import io.micrometer.core.instrument.binder.mongodb.MongoMetricsCommandListener;
import io.micrometer.core.instrument.binder.mongodb.MongoMetricsConnectionPoolListener;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration;
import org.springframework.boot.test.context.FilteredClassLoader;
@@ -57,7 +57,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsAMeterRegistryThenMetricsCommandListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.run((context) -> {
assertThat(context).hasSingleBean(MongoMetricsCommandListener.class);
@@ -72,7 +72,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsAMeterRegistryThenMetricsConnectionPoolListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.run((context) -> {
assertThat(context).hasSingleBean(MongoMetricsConnectionPoolListener.class);
@@ -98,7 +98,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsACustomMetricsCommandTagsProviderItIsUsed() {
final MongoCommandTagsProvider customTagsProvider = mock(MongoCommandTagsProvider.class);
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withBean("customMongoCommandTagsProvider", MongoCommandTagsProvider.class, () -> customTagsProvider)
.run((context) -> assertThat(getMongoCommandTagsProviderUsedToConstructListener(context))
@@ -108,7 +108,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsACustomMetricsConnectionPoolTagsProviderItIsUsed() {
final MongoConnectionPoolTagsProvider customTagsProvider = mock(MongoConnectionPoolTagsProvider.class);
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withBean("customMongoConnectionPoolTagsProvider", MongoConnectionPoolTagsProvider.class,
() -> customTagsProvider)
@@ -118,7 +118,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsNoMongoClientSettingsOnClasspathThenNoMetricsCommandListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withClassLoader(new FilteredClassLoader(MongoClientSettings.class))
.run(assertThatMetricsCommandListenerNotAdded());
@@ -126,7 +126,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsNoMongoClientSettingsOnClasspathThenNoMetricsConnectionPoolListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withClassLoader(new FilteredClassLoader(MongoClientSettings.class))
.run(assertThatMetricsConnectionPoolListenerNotAdded());
@@ -134,7 +134,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsNoMongoMetricsCommandListenerOnClasspathThenNoMetricsCommandListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withClassLoader(new FilteredClassLoader(MongoMetricsCommandListener.class))
.run(assertThatMetricsCommandListenerNotAdded());
@@ -142,7 +142,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenThereIsNoMongoMetricsConnectionPoolListenerOnClasspathThenNoMetricsConnectionPoolListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withClassLoader(new FilteredClassLoader(MongoMetricsConnectionPoolListener.class))
.run(assertThatMetricsConnectionPoolListenerNotAdded());
@@ -150,7 +150,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenMetricsCommandListenerEnabledPropertyFalseThenNoMetricsCommandListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withPropertyValues("management.metrics.mongo.command.enabled:false")
.run(assertThatMetricsCommandListenerNotAdded());
@@ -158,7 +158,7 @@ class MongoMetricsAutoConfigurationTests {
@Test
void whenMetricsConnectionPoolListenerEnabledPropertyFalseThenNoMetricsConnectionPoolListenerIsAdded() {
this.contextRunner.with(MetricsRun.simple())
this.contextRunner.withBean(SimpleMeterRegistry.class)
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class))
.withPropertyValues("management.metrics.mongo.connectionpool.enabled:false")
.run(assertThatMetricsConnectionPoolListenerNotAdded());