diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java index d2d1995720..2f57033d7c 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfiguration.java @@ -19,7 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront; import java.time.Duration; import com.wavefront.sdk.common.WavefrontSender; -import com.wavefront.sdk.direct.ingestion.WavefrontDirectIngestionClient.Builder; +import com.wavefront.sdk.common.clients.WavefrontClient.Builder; import io.micrometer.core.instrument.Clock; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; @@ -89,7 +89,6 @@ public class WavefrontMetricsExportAutoConfiguration { PropertyMapper mapper = PropertyMapper.get().alwaysApplyingWhenNonNull(); Sender sender = this.properties.getSender(); mapper.from(sender.getMaxQueueSize()).to(builder::maxQueueSize); - mapper.from(sender.getBatchSize()).to(builder::batchSize); mapper.from(sender.getFlushInterval()).asInt(Duration::getSeconds).to(builder::flushIntervalSeconds); mapper.from(sender.getMessageSize()).asInt(DataSize::toBytes).to(builder::messageSizeBytes); return builder.build(); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontProperties.java index 2254d42f12..29cbdb4f04 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontProperties.java @@ -99,8 +99,6 @@ public class WavefrontProperties extends PushRegistryProperties { private int maxQueueSize = 50000; - private int batchSize = 10000; - private Duration flushInterval = Duration.ofSeconds(1); private DataSize messageSize = DataSize.ofBytes(Integer.MAX_VALUE); @@ -113,14 +111,6 @@ public class WavefrontProperties extends PushRegistryProperties { this.maxQueueSize = maxQueueSize; } - public int getBatchSize() { - return this.batchSize; - } - - public void setBatchSize(int batchSize) { - this.batchSize = batchSize; - } - public Duration getFlushInterval() { return this.flushInterval; } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java index 3f636d0534..51bf0eedfc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/wavefront/WavefrontMetricsExportAutoConfigurationTests.java @@ -20,7 +20,6 @@ import com.wavefront.sdk.common.WavefrontSender; import io.micrometer.core.instrument.Clock; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -36,6 +35,7 @@ import static org.mockito.Mockito.mock; * Tests for {@link WavefrontMetricsExportAutoConfiguration}. * * @author Jon Schneider + * @author Stephane Nicoll */ class WavefrontMetricsExportAutoConfigurationTests { @@ -70,23 +70,36 @@ class WavefrontMetricsExportAutoConfigurationTests { .hasSingleBean(WavefrontSender.class).hasBean("customConfig")); } + @Test + void defaultWavefrontSenderSettingsAreConsistent() { + this.contextRunner.withUserConfiguration(BaseConfiguration.class) + .withPropertyValues("management.metrics.export.wavefront.api-token=abcde").run((context) -> { + WavefrontProperties properties = new WavefrontProperties(); + WavefrontSender sender = context.getBean(WavefrontSender.class); + assertThat(sender).extracting("metricsBuffer").hasFieldOrPropertyWithValue("capacity", + properties.getSender().getMaxQueueSize()); + assertThat(sender).hasFieldOrPropertyWithValue("batchSize", properties.getBatchSize()); + assertThat(sender).hasFieldOrPropertyWithValue("messageSizeBytes", + (int) properties.getSender().getMessageSize().toBytes()); + }); + } + @Test void configureWavefrontSender() { this.contextRunner.withUserConfiguration(BaseConfiguration.class) .withPropertyValues("management.metrics.export.wavefront.api-token=abcde", + "management.metrics.export.wavefront.batch-size=50", "management.metrics.export.wavefront.sender.max-queue-size=100", - "management.metrics.export.wavefront.sender.batch-size=200", "management.metrics.export.wavefront.sender.message-size=1KB") .run((context) -> { WavefrontSender sender = context.getBean(WavefrontSender.class); + assertThat(sender).hasFieldOrPropertyWithValue("batchSize", 50); assertThat(sender).extracting("metricsBuffer").hasFieldOrPropertyWithValue("capacity", 100); - assertThat(sender).hasFieldOrPropertyWithValue("batchSize", 200); assertThat(sender).hasFieldOrPropertyWithValue("messageSizeBytes", 1024); }); } @Test - @Disabled("see https://github.com/micrometer-metrics/micrometer/issues/1964") void allowsWavefrontSenderToBeCustomized() { this.contextRunner.withUserConfiguration(CustomSenderConfiguration.class) .run((context) -> assertThat(context).hasSingleBean(Clock.class)