Order metrics auto-configurations correctly

Update metrics auto-configurations so that they are auto-configured
after `CompositeMeterRegistryAutoConfiguration` in order to ensure
the `MeterRegistry` bean has been defined.

Prior to this commit, metrics auto-configurations that depended on a
`MeterRegistry` has `@AutoConfigureAfter(MetricsAutoConfiguration.class)`
which is not sufficient since `MetricsAutoConfiguration` does not export
a `MeterRegistry`.

See gh-21134
This commit is contained in:
Martin Benda 2020-04-26 15:43:09 +02:00 committed by Phillip Webb
parent 3271542d98
commit 02b7ec787e
5 changed files with 5 additions and 5 deletions

View File

@ -37,7 +37,7 @@ import org.springframework.context.annotation.Configuration;
* @since 2.1.0
*/
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class JvmMetricsAutoConfiguration {

View File

@ -39,7 +39,7 @@ import org.springframework.context.annotation.Configuration;
* @since 2.1.0
*/
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({ MetricsAutoConfiguration.class, JmxAutoConfiguration.class })
@AutoConfigureAfter({ CompositeMeterRegistryAutoConfiguration.class, JmxAutoConfiguration.class })
@ConditionalOnClass({ KafkaConsumerMetrics.class, KafkaConsumer.class })
@ConditionalOnBean(MeterRegistry.class)
public class KafkaMetricsAutoConfiguration {

View File

@ -41,7 +41,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
* @since 2.1.0
*/
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnClass(value = { Log4j2Metrics.class, LogManager.class },
name = "org.apache.logging.log4j.core.LoggerContext")
@ConditionalOnBean(MeterRegistry.class)

View File

@ -44,7 +44,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
* @since 2.1.0
*/
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnClass({ MeterRegistry.class, LoggerContext.class, LoggerFactory.class })
@ConditionalOnBean(MeterRegistry.class)
@Conditional(LogbackLoggingCondition.class)

View File

@ -36,7 +36,7 @@ import org.springframework.context.annotation.Configuration;
* @since 2.1.0
*/
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnClass(MeterRegistry.class)
@ConditionalOnBean(MeterRegistry.class)
public class SystemMetricsAutoConfiguration {