diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxProperties.java index 0706c305ef..a09029e534 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxProperties.java @@ -57,6 +57,25 @@ public class InfluxProperties extends StepRegistryProperties { */ private String retentionPolicy; + /** + * Time period for which Influx should retain data in the current database. For + * instance 7d, check the influx documentation for more details on the duration + * format. + */ + private String retentionDuration; + + /** + * How many copies of the data are stored in the cluster. Must be 1 for a single node + * instance. + */ + private Integer retentionReplicationFactor; + + /** + * Time range covered by a shard group. For instance 2w, check the influx + * documentation for more details on the duration format. + */ + private String retentionShardDuration; + /** * URI of the Influx server. */ @@ -113,6 +132,30 @@ public class InfluxProperties extends StepRegistryProperties { this.retentionPolicy = retentionPolicy; } + public String getRetentionDuration() { + return this.retentionDuration; + } + + public void setRetentionDuration(String retentionDuration) { + this.retentionDuration = retentionDuration; + } + + public Integer getRetentionReplicationFactor() { + return this.retentionReplicationFactor; + } + + public void setRetentionReplicationFactor(Integer retentionReplicationFactor) { + this.retentionReplicationFactor = retentionReplicationFactor; + } + + public String getRetentionShardDuration() { + return this.retentionShardDuration; + } + + public void setRetentionShardDuration(String retentionShardDuration) { + this.retentionShardDuration = retentionShardDuration; + } + public String getUri() { return this.uri; } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesConfigAdapter.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesConfigAdapter.java index e5145d3cfd..1b8713348a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesConfigAdapter.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesConfigAdapter.java @@ -60,6 +60,24 @@ class InfluxPropertiesConfigAdapter extends InfluxConfig.super::retentionPolicy); } + @Override + public Integer retentionReplicationFactor() { + return get(InfluxProperties::getRetentionReplicationFactor, + InfluxConfig.super::retentionReplicationFactor); + } + + @Override + public String retentionDuration() { + return get(InfluxProperties::getRetentionDuration, + InfluxConfig.super::retentionDuration); + } + + @Override + public String retentionShardDuration() { + return get(InfluxProperties::getRetentionShardDuration, + InfluxConfig.super::retentionShardDuration); + } + @Override public String uri() { return get(InfluxProperties::getUri, InfluxConfig.super::uri); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/signalfx/SignalFxPropertiesConfigAdapter.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/signalfx/SignalFxPropertiesConfigAdapter.java index 721c1a52d8..a3feda0fe6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/signalfx/SignalFxPropertiesConfigAdapter.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/signalfx/SignalFxPropertiesConfigAdapter.java @@ -32,6 +32,7 @@ public class SignalFxPropertiesConfigAdapter public SignalFxPropertiesConfigAdapter(SignalFxProperties properties) { super(properties); + accessToken(); // validate that an access token is set } @Override diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesTests.java index 4d62674b11..832a5c3abf 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/influx/InfluxPropertiesTests.java @@ -39,6 +39,12 @@ public class InfluxPropertiesTests extends StepRegistryPropertiesTests { assertThat(properties.getUserName()).isEqualTo(config.userName()); assertThat(properties.getPassword()).isEqualTo(config.password()); assertThat(properties.getRetentionPolicy()).isEqualTo(config.retentionPolicy()); + assertThat(properties.getRetentionDuration()) + .isEqualTo(config.retentionDuration()); + assertThat(properties.getRetentionReplicationFactor()) + .isEqualTo(config.retentionReplicationFactor()); + assertThat(properties.getRetentionShardDuration()) + .isEqualTo(config.retentionShardDuration()); assertThat(properties.getUri()).isEqualTo(config.uri()); assertThat(properties.isCompressed()).isEqualTo(config.compressed()); assertThat(properties.isAutoCreateDb()).isEqualTo(config.autoCreateDb()); diff --git a/spring-boot-project/spring-boot-dependencies/pom.xml b/spring-boot-project/spring-boot-dependencies/pom.xml index b82c39c728..00b9c95d29 100644 --- a/spring-boot-project/spring-boot-dependencies/pom.xml +++ b/spring-boot-project/spring-boot-dependencies/pom.xml @@ -122,7 +122,7 @@ 1.2.3 1.16.22 2.2.6 - 1.0.5 + 1.0.6 2.15.0 1.7.1 3.6.4 diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 8d55d0b70d..9a796c4b10 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -1371,7 +1371,10 @@ content into your application. Rather, pick only the properties that you need. management.metrics.export.influx.num-threads=2 # Number of threads to use with the metrics publishing scheduler. management.metrics.export.influx.password= # Login password of the Influx server. management.metrics.export.influx.read-timeout=10s # Read timeout for requests to this backend. + management.metrics.export.influx.retention-duration= # Time period for which Influx should retain data in the current database. + management.metrics.export.influx.retention-shard-duration= # Time range covered by a shard group. management.metrics.export.influx.retention-policy= # Retention policy to use (Influx writes to the DEFAULT retention policy if one is not specified). + management.metrics.export.influx.retention-replication-factor= # How many copies of the data are stored in the cluster. management.metrics.export.influx.step=1m # Step size (i.e. reporting frequency) to use. management.metrics.export.influx.uri=http://localhost:8086 # URI of the Influx server. management.metrics.export.influx.user-name= # Login user of the Influx server.