Skip to content

Commit 9774d8a

Browse files
Add aggregation temporality to OtlpProperties
In Micrometer 1.11.0-RC1, a new property was introduced in OtlpConfig to define aggregation temporality. See micrometer-metrics/micrometer#3625
1 parent d4980ea commit 9774d8a

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import java.util.Map;
2020

21+
import io.micrometer.registry.otlp.AggregationTemporality;
22+
2123
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryProperties;
2224
import org.springframework.boot.context.properties.ConfigurationProperties;
2325

@@ -26,6 +28,7 @@
2628
* export.
2729
*
2830
* @author Eddú Meléndez
31+
* @author Jonatan Ivanov
2932
* @since 3.0.0
3033
*/
3134
@ConfigurationProperties(prefix = "management.otlp.metrics.export")
@@ -36,6 +39,12 @@ public class OtlpProperties extends StepRegistryProperties {
3639
*/
3740
private String url = "http://localhost:4318/v1/metrics";
3841

42+
/**
43+
* Aggregation temporality of sums. It defines the way additive values are expressed.
44+
* This setting depends on the backend you use, some only support one temporality.
45+
*/
46+
private AggregationTemporality aggregationTemporality = AggregationTemporality.CUMULATIVE;
47+
3948
/**
4049
* Monitored resource's attributes.
4150
*/
@@ -54,6 +63,14 @@ public void setUrl(String url) {
5463
this.url = url;
5564
}
5665

66+
public AggregationTemporality getAggregationTemporality() {
67+
return this.aggregationTemporality;
68+
}
69+
70+
public void setAggregationTemporality(AggregationTemporality aggregationTemporality) {
71+
this.aggregationTemporality = aggregationTemporality;
72+
}
73+
5774
public Map<String, String> getResourceAttributes() {
5875
return this.resourceAttributes;
5976
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.Map;
2020

21+
import io.micrometer.registry.otlp.AggregationTemporality;
2122
import io.micrometer.registry.otlp.OtlpConfig;
2223

2324
import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryPropertiesConfigAdapter;
@@ -26,6 +27,7 @@
2627
* Adapter to convert {@link OtlpProperties} to an {@link OtlpConfig}.
2728
*
2829
* @author Eddú Meléndez
30+
* @author Jonatan Ivanov
2931
*/
3032
class OtlpPropertiesConfigAdapter extends StepRegistryPropertiesConfigAdapter<OtlpProperties> implements OtlpConfig {
3133

@@ -43,6 +45,11 @@ public String url() {
4345
return get(OtlpProperties::getUrl, OtlpConfig.super::url);
4446
}
4547

48+
@Override
49+
public AggregationTemporality aggregationTemporality() {
50+
return get(OtlpProperties::getAggregationTemporality, OtlpConfig.super::aggregationTemporality);
51+
}
52+
4653
@Override
4754
public Map<String, String> resourceAttributes() {
4855
return get(OtlpProperties::getResourceAttributes, OtlpConfig.super::resourceAttributes);

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.Map;
2020

21+
import io.micrometer.registry.otlp.AggregationTemporality;
2122
import org.junit.jupiter.api.Test;
2223

2324
import static org.assertj.core.api.Assertions.assertThat;
@@ -36,6 +37,21 @@ void whenPropertiesUrlIsSetAdapterUrlReturnsIt() {
3637
assertThat(new OtlpPropertiesConfigAdapter(properties).url()).isEqualTo("http://another-url:4318/v1/metrics");
3738
}
3839

40+
@Test
41+
void whenPropertiesAggregationTemporalityIsNotSetAdapterAggregationTemporalityReturnsCumulative() {
42+
OtlpProperties properties = new OtlpProperties();
43+
assertThat(new OtlpPropertiesConfigAdapter(properties).aggregationTemporality())
44+
.isSameAs(AggregationTemporality.CUMULATIVE);
45+
}
46+
47+
@Test
48+
void whenPropertiesAggregationTemporalityIsSetAdapterAggregationTemporalityReturnsIt() {
49+
OtlpProperties properties = new OtlpProperties();
50+
properties.setAggregationTemporality(AggregationTemporality.DELTA);
51+
assertThat(new OtlpPropertiesConfigAdapter(properties).aggregationTemporality())
52+
.isSameAs(AggregationTemporality.DELTA);
53+
}
54+
3955
@Test
4056
void whenPropertiesResourceAttributesIsSetAdapterResourceAttributesReturnsIt() {
4157
OtlpProperties properties = new OtlpProperties();

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ void defaultValuesAreConsistent() {
3636
OtlpConfig config = OtlpConfig.DEFAULT;
3737
assertStepRegistryDefaultValues(properties, config);
3838
assertThat(properties.getUrl()).isEqualTo(config.url());
39+
assertThat(properties.getAggregationTemporality()).isSameAs(config.aggregationTemporality());
3940
}
4041

4142
}

0 commit comments

Comments
 (0)