Refine metrics export auto-configure ordering
The `SimpleMetricsExportAutoConfiguration` should be last and it should check for a `MeterRegistry` bean. See gh-11838
This commit is contained in:
@@ -21,6 +21,7 @@ import io.micrometer.atlas.AtlasMeterRegistry;
|
||||
import io.micrometer.core.instrument.Clock;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(AtlasMeterRegistry.class)
|
||||
@EnableConfigurationProperties(AtlasProperties.class)
|
||||
public class AtlasMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -21,6 +21,7 @@ import io.micrometer.datadog.DatadogConfig;
|
||||
import io.micrometer.datadog.DatadogMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(DatadogMeterRegistry.class)
|
||||
@ConditionalOnProperty("management.metrics.export.datadog.api-key")
|
||||
@EnableConfigurationProperties(DatadogProperties.class)
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.micrometer.ganglia.GangliaConfig;
|
||||
import io.micrometer.ganglia.GangliaMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(GangliaMeterRegistry.class)
|
||||
@EnableConfigurationProperties(GangliaProperties.class)
|
||||
public class GangliaMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.micrometer.graphite.GraphiteConfig;
|
||||
import io.micrometer.graphite.GraphiteMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(GraphiteMeterRegistry.class)
|
||||
@EnableConfigurationProperties(GraphiteProperties.class)
|
||||
public class GraphiteMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -21,6 +21,7 @@ import io.micrometer.influx.InfluxConfig;
|
||||
import io.micrometer.influx.InfluxMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -36,7 +37,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(InfluxMeterRegistry.class)
|
||||
@EnableConfigurationProperties(InfluxProperties.class)
|
||||
public class InfluxMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.micrometer.jmx.JmxConfig;
|
||||
import io.micrometer.jmx.JmxMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(JmxMeterRegistry.class)
|
||||
@EnableConfigurationProperties(JmxProperties.class)
|
||||
public class JmxMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||
import io.prometheus.client.CollectorRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration;
|
||||
import org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
@@ -39,7 +40,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Jon Schneider
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(PrometheusMeterRegistry.class)
|
||||
@EnableConfigurationProperties(PrometheusProperties.class)
|
||||
public class PrometheusMetricsExportAutoConfiguration {
|
||||
|
||||
@@ -33,7 +33,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to a
|
||||
* {@link SimpleMeterRegistry}.
|
||||
* {@link SimpleMeterRegistry}. Auto-configured after all other {@link MeterRegistry}
|
||||
* beans and only used as a fallback.
|
||||
*
|
||||
* @author Jon Schneider
|
||||
* @since 2.0.0
|
||||
@@ -52,6 +53,7 @@ public class SimpleMetricsExportAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(MeterRegistry.class)
|
||||
public SimpleMeterRegistry simpleMeterRegistry(SimpleConfig config, Clock clock) {
|
||||
return new SimpleMeterRegistry(config, clock);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.micrometer.statsd.StatsdConfig;
|
||||
import io.micrometer.statsd.StatsdMeterRegistry;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -37,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(MetricsAutoConfiguration.class)
|
||||
@AutoConfigureBefore({ MetricsAutoConfiguration.class,
|
||||
SimpleMetricsExportAutoConfiguration.class })
|
||||
@ConditionalOnClass(StatsdMeterRegistry.class)
|
||||
@EnableConfigurationProperties(StatsdProperties.class)
|
||||
public class StatsdMetricsExportAutoConfiguration {
|
||||
|
||||
Reference in New Issue
Block a user