Skip to content

Commit 8115f8f

Browse files
jonatan-ivanovsnicoll
authored andcommitted
Add property for base time unit in OTLP registry
Micrometer added a new configuration option to its OTLP registry to enable configuring the base time unit. These changes provide a configuration property to support to it. See gh-36393
1 parent f33874e commit 8115f8f

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/otlp/OtlpProperties.java

+14
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
1818

1919
import java.util.Map;
20+
import java.util.concurrent.TimeUnit;
2021

2122
import io.micrometer.registry.otlp.AggregationTemporality;
2223

@@ -55,6 +56,11 @@ public class OtlpProperties extends StepRegistryProperties {
5556
*/
5657
private Map<String, String> headers;
5758

59+
/**
60+
* Time unit for exported metrics.
61+
*/
62+
private TimeUnit baseTimeUnit = TimeUnit.MILLISECONDS;
63+
5864
public String getUrl() {
5965
return this.url;
6066
}
@@ -87,4 +93,12 @@ public void setHeaders(Map<String, String> headers) {
8793
this.headers = headers;
8894
}
8995

96+
public TimeUnit getBaseTimeUnit() {
97+
return this.baseTimeUnit;
98+
}
99+
100+
public void setBaseTimeUnit(TimeUnit baseTimeUnit) {
101+
this.baseTimeUnit = baseTimeUnit;
102+
}
103+
90104
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/otlp/OtlpPropertiesConfigAdapter.java

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
1818

1919
import java.util.Map;
20+
import java.util.concurrent.TimeUnit;
2021

2122
import io.micrometer.registry.otlp.AggregationTemporality;
2223
import io.micrometer.registry.otlp.OtlpConfig;
@@ -60,4 +61,9 @@ public Map<String, String> headers() {
6061
return get(OtlpProperties::getHeaders, OtlpConfig.super::headers);
6162
}
6263

64+
@Override
65+
public TimeUnit baseTimeUnit() {
66+
return get(OtlpProperties::getBaseTimeUnit, OtlpConfig.super::baseTimeUnit);
67+
}
68+
6369
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/otlp/OtlpPropertiesConfigAdapterTests.java

+14
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
1818

1919
import java.util.Map;
20+
import java.util.concurrent.TimeUnit;
2021

2122
import io.micrometer.registry.otlp.AggregationTemporality;
2223
import org.junit.jupiter.api.Test;
@@ -67,4 +68,17 @@ void whenPropertiesHeadersIsSetAdapterHeadersReturnsIt() {
6768
assertThat(new OtlpPropertiesConfigAdapter(properties).headers()).containsEntry("header", "value");
6869
}
6970

71+
@Test
72+
void whenPropertiesBaseTimeUnitIsNotSetAdapterBaseTimeUnitReturnsMillis() {
73+
OtlpProperties properties = new OtlpProperties();
74+
assertThat(new OtlpPropertiesConfigAdapter(properties).baseTimeUnit()).isSameAs(TimeUnit.MILLISECONDS);
75+
}
76+
77+
@Test
78+
void whenPropertiesBaseTimeUnitIsSetAdapterBaseTimeUnitReturnsIt() {
79+
OtlpProperties properties = new OtlpProperties();
80+
properties.setBaseTimeUnit(TimeUnit.SECONDS);
81+
assertThat(new OtlpPropertiesConfigAdapter(properties).baseTimeUnit()).isSameAs(TimeUnit.SECONDS);
82+
}
83+
7084
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/otlp/OtlpPropertiesTests.java

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ void defaultValuesAreConsistent() {
3737
assertStepRegistryDefaultValues(properties, config);
3838
assertThat(properties.getUrl()).isEqualTo(config.url());
3939
assertThat(properties.getAggregationTemporality()).isSameAs(config.aggregationTemporality());
40+
assertThat(properties.getBaseTimeUnit()).isSameAs(config.baseTimeUnit());
4041
}
4142

4243
}

0 commit comments

Comments
 (0)