Commit fe63342f authored by artsiom's avatar artsiom Committed by Andy Wilkinson

Handle StepRegistry connect/read timeout deprecation

See gh-14886
parent a9844533
...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.appoptics; ...@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.appoptics;
import io.micrometer.appoptics.AppOpticsConfig; import io.micrometer.appoptics.AppOpticsConfig;
import io.micrometer.appoptics.AppOpticsMeterRegistry; import io.micrometer.appoptics.AppOpticsMeterRegistry;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to AppOptics. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to AppOptics.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
@Configuration @Configuration
...@@ -59,8 +61,12 @@ public class AppOpticsMetricsExportAutoConfiguration { ...@@ -59,8 +61,12 @@ public class AppOpticsMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public AppOpticsMeterRegistry appOpticsMeterRegistry(AppOpticsConfig config, public AppOpticsMeterRegistry appOpticsMeterRegistry(AppOpticsConfig config,
Clock clock) { Clock clock, AppOpticsProperties appOpticsProperties) {
return new AppOpticsMeterRegistry(config, clock); return AppOpticsMeterRegistry.builder(config).clock(clock)
.httpClient(new HttpUrlConnectionSender(
appOpticsProperties.getConnectTimeout(),
appOpticsProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.datadog; package org.springframework.boot.actuate.autoconfigure.metrics.export.datadog;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.datadog.DatadogConfig; import io.micrometer.datadog.DatadogConfig;
import io.micrometer.datadog.DatadogMeterRegistry; import io.micrometer.datadog.DatadogMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Datadog. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Datadog.
* *
* @author Jon Schneider * @author Jon Schneider
* @author Artsiom Yudovin
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration @Configuration
...@@ -59,8 +61,12 @@ public class DatadogMetricsExportAutoConfiguration { ...@@ -59,8 +61,12 @@ public class DatadogMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public DatadogMeterRegistry datadogMeterRegistry(DatadogConfig datadogConfig, public DatadogMeterRegistry datadogMeterRegistry(DatadogConfig datadogConfig,
Clock clock) { Clock clock, DatadogProperties datadogProperties) {
return new DatadogMeterRegistry(datadogConfig, clock); return DatadogMeterRegistry.builder(datadogConfig).clock(clock)
.httpClient(
new HttpUrlConnectionSender(datadogProperties.getConnectTimeout(),
datadogProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace; package org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.dynatrace.DynatraceConfig; import io.micrometer.dynatrace.DynatraceConfig;
import io.micrometer.dynatrace.DynatraceMeterRegistry; import io.micrometer.dynatrace.DynatraceMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Dynatrace. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Dynatrace.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
@Configuration @Configuration
...@@ -59,8 +61,12 @@ public class DynatraceMetricsExportAutoConfiguration { ...@@ -59,8 +61,12 @@ public class DynatraceMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public DynatraceMeterRegistry dynatraceMeterRegistry(DynatraceConfig dynatraceConfig, public DynatraceMeterRegistry dynatraceMeterRegistry(DynatraceConfig dynatraceConfig,
Clock clock) { Clock clock, DynatraceProperties dynatraceProperties) {
return new DynatraceMeterRegistry(dynatraceConfig, clock); return DynatraceMeterRegistry.builder(dynatraceConfig).clock(clock)
.httpClient(new HttpUrlConnectionSender(
dynatraceProperties.getConnectTimeout(),
dynatraceProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.elastic; package org.springframework.boot.actuate.autoconfigure.metrics.export.elastic;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.elastic.ElasticConfig; import io.micrometer.elastic.ElasticConfig;
import io.micrometer.elastic.ElasticMeterRegistry; import io.micrometer.elastic.ElasticMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Elastic. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Elastic.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
@Configuration @Configuration
...@@ -59,8 +61,12 @@ public class ElasticMetricsExportAutoConfiguration { ...@@ -59,8 +61,12 @@ public class ElasticMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public ElasticMeterRegistry elasticMeterRegistry(ElasticConfig elasticConfig, public ElasticMeterRegistry elasticMeterRegistry(ElasticConfig elasticConfig,
Clock clock) { Clock clock, ElasticProperties elasticProperties) {
return new ElasticMeterRegistry(elasticConfig, clock); return ElasticMeterRegistry.builder(elasticConfig).clock(clock)
.httpClient(
new HttpUrlConnectionSender(elasticProperties.getConnectTimeout(),
elasticProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.humio; package org.springframework.boot.actuate.autoconfigure.metrics.export.humio;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.humio.HumioConfig; import io.micrometer.humio.HumioConfig;
import io.micrometer.humio.HumioMeterRegistry; import io.micrometer.humio.HumioMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Humio. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Humio.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
@Configuration @Configuration
...@@ -58,8 +60,14 @@ public class HumioMetricsExportAutoConfiguration { ...@@ -58,8 +60,14 @@ public class HumioMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public HumioMeterRegistry humioMeterRegistry(HumioConfig humioConfig, Clock clock) { public HumioMeterRegistry humioMeterRegistry(HumioConfig humioConfig, Clock clock,
return new HumioMeterRegistry(humioConfig, clock); HumioProperties humioProperties) {
return HumioMeterRegistry.builder(humioConfig).clock(clock)
.httpClient(
new HttpUrlConnectionSender(humioProperties.getConnectTimeout(),
humioProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.influx; package org.springframework.boot.actuate.autoconfigure.metrics.export.influx;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.influx.InfluxConfig; import io.micrometer.influx.InfluxConfig;
import io.micrometer.influx.InfluxMeterRegistry; import io.micrometer.influx.InfluxMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Influx. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Influx.
* *
* @author Jon Schneider * @author Jon Schneider
* @author Artsiom Yudovin
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration @Configuration
...@@ -58,9 +60,14 @@ public class InfluxMetricsExportAutoConfiguration { ...@@ -58,9 +60,14 @@ public class InfluxMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public InfluxMeterRegistry influxMeterRegistry(InfluxConfig influxConfig, public InfluxMeterRegistry influxMeterRegistry(InfluxConfig influxConfig, Clock clock,
Clock clock) { InfluxProperties influxProperties) {
return new InfluxMeterRegistry(influxConfig, clock); return InfluxMeterRegistry.builder(influxConfig).clock(clock)
.httpClient(
new HttpUrlConnectionSender(influxProperties.getConnectTimeout(),
influxProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.kairos; package org.springframework.boot.actuate.autoconfigure.metrics.export.kairos;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.kairos.KairosConfig; import io.micrometer.kairos.KairosConfig;
import io.micrometer.kairos.KairosMeterRegistry; import io.micrometer.kairos.KairosMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to KairosDB. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to KairosDB.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
@Configuration @Configuration
...@@ -58,9 +60,14 @@ public class KairosMetricsExportAutoConfiguration { ...@@ -58,9 +60,14 @@ public class KairosMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public KairosMeterRegistry kairosMeterRegistry(KairosConfig kairosConfig, public KairosMeterRegistry kairosMeterRegistry(KairosConfig kairosConfig, Clock clock,
Clock clock) { KairosProperties kairosProperties) {
return new KairosMeterRegistry(kairosConfig, clock); return KairosMeterRegistry.builder(kairosConfig).clock(clock)
.httpClient(
new HttpUrlConnectionSender(kairosProperties.getConnectTimeout(),
kairosProperties.getReadTimeout()))
.build();
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.newrelic; package org.springframework.boot.actuate.autoconfigure.metrics.export.newrelic;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.newrelic.NewRelicConfig; import io.micrometer.newrelic.NewRelicConfig;
import io.micrometer.newrelic.NewRelicMeterRegistry; import io.micrometer.newrelic.NewRelicMeterRegistry;
...@@ -39,6 +40,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -39,6 +40,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author Jon Schneider * @author Jon Schneider
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Artsiom Yudovin
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration @Configuration
...@@ -60,8 +62,13 @@ public class NewRelicMetricsExportAutoConfiguration { ...@@ -60,8 +62,13 @@ public class NewRelicMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public NewRelicMeterRegistry newRelicMeterRegistry(NewRelicConfig newRelicConfig, public NewRelicMeterRegistry newRelicMeterRegistry(NewRelicConfig newRelicConfig,
Clock clock) { Clock clock, NewRelicProperties newRelicProperties) {
return new NewRelicMeterRegistry(newRelicConfig, clock); return NewRelicMeterRegistry.builder(newRelicConfig).clock(clock)
.httpClient(new HttpUrlConnectionSender(
newRelicProperties.getConnectTimeout(),
newRelicProperties.getReadTimeout()))
.build();
} }
} }
...@@ -26,6 +26,7 @@ import io.micrometer.core.instrument.step.StepRegistryConfig; ...@@ -26,6 +26,7 @@ import io.micrometer.core.instrument.step.StepRegistryConfig;
* @param <T> the properties type * @param <T> the properties type
* @author Jon Schneider * @author Jon Schneider
* @author Phillip Webb * @author Phillip Webb
* @author Artsiom Yudovin
* @since 2.0.0 * @since 2.0.0
*/ */
public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistryProperties> public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistryProperties>
...@@ -55,16 +56,6 @@ public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistry ...@@ -55,16 +56,6 @@ public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistry
return get(T::isEnabled, StepRegistryConfig.super::enabled); return get(T::isEnabled, StepRegistryConfig.super::enabled);
} }
@Override
public Duration connectTimeout() {
return get(T::getConnectTimeout, StepRegistryConfig.super::connectTimeout);
}
@Override
public Duration readTimeout() {
return get(T::getReadTimeout, StepRegistryConfig.super::readTimeout);
}
@Override @Override
public int numThreads() { public int numThreads() {
return get(T::getNumThreads, StepRegistryConfig.super::numThreads); return get(T::getNumThreads, StepRegistryConfig.super::numThreads);
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront; package org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.ipc.http.HttpUrlConnectionSender;
import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontConfig;
import io.micrometer.wavefront.WavefrontMeterRegistry; import io.micrometer.wavefront.WavefrontMeterRegistry;
...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,6 +39,7 @@ import org.springframework.context.annotation.Configuration;
* {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Wavefront. * {@link EnableAutoConfiguration Auto-configuration} for exporting metrics to Wavefront.
* *
* @author Jon Schneider * @author Jon Schneider
* @author Artsiom Yudovin
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration @Configuration
...@@ -59,8 +61,12 @@ public class WavefrontMetricsExportAutoConfiguration { ...@@ -59,8 +61,12 @@ public class WavefrontMetricsExportAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public WavefrontMeterRegistry wavefrontMeterRegistry(WavefrontConfig wavefrontConfig, public WavefrontMeterRegistry wavefrontMeterRegistry(WavefrontConfig wavefrontConfig,
Clock clock) { Clock clock, WavefrontProperties wavefrontProperties) {
return new WavefrontMeterRegistry(wavefrontConfig, clock); return WavefrontMeterRegistry.builder(wavefrontConfig).clock(clock)
.httpClient(new HttpUrlConnectionSender(
wavefrontProperties.getConnectTimeout(),
wavefrontProperties.getReadTimeout()))
.build();
} }
} }
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.humio; package org.springframework.boot.actuate.autoconfigure.metrics.export.humio;
import java.time.Duration;
import java.util.Collections; import java.util.Collections;
import org.junit.Test; import org.junit.Test;
...@@ -38,14 +37,6 @@ public class HumioPropertiesConfigAdapterTests { ...@@ -38,14 +37,6 @@ public class HumioPropertiesConfigAdapterTests {
.isEqualTo("ABC123"); .isEqualTo("ABC123");
} }
@Test
public void whenPropertiesConnectTimeoutIsSetAdapterConnectTimeoutReturnsIt() {
HumioProperties properties = new HumioProperties();
properties.setConnectTimeout(Duration.ofSeconds(10));
assertThat(new HumioPropertiesConfigAdapter(properties).connectTimeout())
.isEqualTo(Duration.ofSeconds(10));
}
@Test @Test
public void whenPropertiesRepositoryIsSetAdapterRepositoryReturnsIt() { public void whenPropertiesRepositoryIsSetAdapterRepositoryReturnsIt() {
HumioProperties properties = new HumioProperties(); HumioProperties properties = new HumioProperties();
......
...@@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat; ...@@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @param <P> properties used by the tests * @param <P> properties used by the tests
* @param <A> adapter used by the tests * @param <A> adapter used by the tests
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Artsiom Yudovin
*/ */
public abstract class StepRegistryPropertiesConfigAdapterTests<P extends StepRegistryProperties, A extends StepRegistryPropertiesConfigAdapter<P>> { public abstract class StepRegistryPropertiesConfigAdapterTests<P extends StepRegistryProperties, A extends StepRegistryPropertiesConfigAdapter<P>> {
...@@ -50,22 +51,6 @@ public abstract class StepRegistryPropertiesConfigAdapterTests<P extends StepReg ...@@ -50,22 +51,6 @@ public abstract class StepRegistryPropertiesConfigAdapterTests<P extends StepReg
assertThat(createConfigAdapter(properties).enabled()).isFalse(); assertThat(createConfigAdapter(properties).enabled()).isFalse();
} }
@Test
public void whenPropertiesConnectTimeoutIsSetAdapterConnectTimeoutReturnsIt() {
P properties = createProperties();
properties.setConnectTimeout(Duration.ofMinutes(42));
assertThat(createConfigAdapter(properties).connectTimeout())
.isEqualTo(Duration.ofMinutes(42));
}
@Test
public void whenPropertiesReadTimeoutIsSetAdapterReadTimeoutReturnsIt() {
P properties = createProperties();
properties.setReadTimeout(Duration.ofMillis(42));
assertThat(createConfigAdapter(properties).readTimeout())
.isEqualTo(Duration.ofMillis(42));
}
@Test @Test
public void whenPropertiesNumThreadsIsSetAdapterNumThreadsReturnsIt() { public void whenPropertiesNumThreadsIsSetAdapterNumThreadsReturnsIt() {
P properties = createProperties(); P properties = createProperties();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment