Skip to content

Commit

Permalink
Add aggregation temporality to OtlpProperties
Browse files Browse the repository at this point in the history
In Micrometer 1.11.0-RC1, a new property was introduced in OtlpConfig
to define aggregation temporality.
See micrometer-metrics/micrometer#3625
  • Loading branch information
jonatan-ivanov committed Apr 13, 2023
1 parent d4980ea commit cde9011
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

import java.util.Map;

import io.micrometer.registry.otlp.AggregationTemporality;

import org.springframework.boot.actuate.autoconfigure.metrics.export.properties.StepRegistryProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;

Expand All @@ -26,6 +28,7 @@
* export.
*
* @author Eddú Meléndez
* @author Jonatan Ivanov
* @since 3.0.0
*/
@ConfigurationProperties(prefix = "management.otlp.metrics.export")
Expand All @@ -36,6 +39,13 @@ public class OtlpProperties extends StepRegistryProperties {
*/
private String url = "http://localhost:4318/v1/metrics";

/**
* Aggregation temporality of sums. It defines the way additive values are
* expressed. This setting depends on the backend you use, some only support one
* temporality.
*/
private AggregationTemporality aggregationTemporality = AggregationTemporality.CUMULATIVE;

/**
* Monitored resource's attributes.
*/
Expand All @@ -54,6 +64,14 @@ public void setUrl(String url) {
this.url = url;
}

public AggregationTemporality getAggregationTemporality() {
return this.aggregationTemporality;
}

public void setAggregationTemporality(AggregationTemporality aggregationTemporality) {
this.aggregationTemporality = aggregationTemporality;
}

public Map<String, String> getResourceAttributes() {
return this.resourceAttributes;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.Map;

import io.micrometer.registry.otlp.AggregationTemporality;
import io.micrometer.registry.otlp.OtlpConfig;

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

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

@Override
public AggregationTemporality aggregationTemporality() {
return get(OtlpProperties::getAggregationTemporality, OtlpConfig.super::aggregationTemporality);
}

@Override
public Map<String, String> resourceAttributes() {
return get(OtlpProperties::getResourceAttributes, OtlpConfig.super::resourceAttributes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.Map;

import io.micrometer.registry.otlp.AggregationTemporality;
import org.junit.jupiter.api.Test;

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

@Test
void whenPropertiesAggregationTemporalityIsNotSetAdapterAggregationTemporalityReturnsCumulative() {
OtlpProperties properties = new OtlpProperties();
assertThat(new OtlpPropertiesConfigAdapter(properties).aggregationTemporality())
.isSameAs(AggregationTemporality.CUMULATIVE);
}

@Test
void whenPropertiesAggregationTemporalityIsSetAdapterAggregationTemporalityReturnsIt() {
OtlpProperties properties = new OtlpProperties();
properties.setAggregationTemporality(AggregationTemporality.DELTA);
assertThat(new OtlpPropertiesConfigAdapter(properties).aggregationTemporality())
.isSameAs(AggregationTemporality.DELTA);
}

@Test
void whenPropertiesResourceAttributesIsSetAdapterResourceAttributesReturnsIt() {
OtlpProperties properties = new OtlpProperties();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ void defaultValuesAreConsistent() {
OtlpConfig config = OtlpConfig.DEFAULT;
assertStepRegistryDefaultValues(properties, config);
assertThat(properties.getUrl()).isEqualTo(config.url());
assertThat(properties.getAggregationTemporality()).isSameAs(config.aggregationTemporality());
}

}

0 comments on commit cde9011

Please sign in to comment.