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
This commit is contained in:
Jonatan Ivanov
2023-07-12 12:49:18 -07:00
committed by Stephane Nicoll
parent f33874e98e
commit 8115f8f146
4 changed files with 35 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
@@ -55,6 +56,11 @@ public class OtlpProperties extends StepRegistryProperties {
*/
private Map<String, String> headers;
/**
* Time unit for exported metrics.
*/
private TimeUnit baseTimeUnit = TimeUnit.MILLISECONDS;
public String getUrl() {
return this.url;
}
@@ -87,4 +93,12 @@ public class OtlpProperties extends StepRegistryProperties {
this.headers = headers;
}
public TimeUnit getBaseTimeUnit() {
return this.baseTimeUnit;
}
public void setBaseTimeUnit(TimeUnit baseTimeUnit) {
this.baseTimeUnit = baseTimeUnit;
}
}

View File

@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
import io.micrometer.registry.otlp.OtlpConfig;
@@ -60,4 +61,9 @@ class OtlpPropertiesConfigAdapter extends StepRegistryPropertiesConfigAdapter<Ot
return get(OtlpProperties::getHeaders, OtlpConfig.super::headers);
}
@Override
public TimeUnit baseTimeUnit() {
return get(OtlpProperties::getBaseTimeUnit, OtlpConfig.super::baseTimeUnit);
}
}

View File

@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export.otlp;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
import org.junit.jupiter.api.Test;
@@ -67,4 +68,17 @@ class OtlpPropertiesConfigAdapterTests {
assertThat(new OtlpPropertiesConfigAdapter(properties).headers()).containsEntry("header", "value");
}
@Test
void whenPropertiesBaseTimeUnitIsNotSetAdapterBaseTimeUnitReturnsMillis() {
OtlpProperties properties = new OtlpProperties();
assertThat(new OtlpPropertiesConfigAdapter(properties).baseTimeUnit()).isSameAs(TimeUnit.MILLISECONDS);
}
@Test
void whenPropertiesBaseTimeUnitIsSetAdapterBaseTimeUnitReturnsIt() {
OtlpProperties properties = new OtlpProperties();
properties.setBaseTimeUnit(TimeUnit.SECONDS);
assertThat(new OtlpPropertiesConfigAdapter(properties).baseTimeUnit()).isSameAs(TimeUnit.SECONDS);
}
}

View File

@@ -37,6 +37,7 @@ class OtlpPropertiesTests extends StepRegistryPropertiesTests {
assertStepRegistryDefaultValues(properties, config);
assertThat(properties.getUrl()).isEqualTo(config.url());
assertThat(properties.getAggregationTemporality()).isSameAs(config.aggregationTemporality());
assertThat(properties.getBaseTimeUnit()).isSameAs(config.baseTimeUnit());
}
}