Merge pull request #36393 from jonatan-ivanov

* pr/36393:
  Add property for base time unit in OTLP registry

Closes gh-36393
This commit is contained in:
Stephane Nicoll 2023-07-17 13:17:59 +02:00
commit 0e67ec89c2
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());
}
}