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.