Merge pull request #48957 from jonatan-ivanov

* gh-48957:
  Polish "Add compression mode OTLP property"
  Add compression mode OTLP property

Closes gh-48957
This commit is contained in:
Andy Wilkinson
2026-02-10 11:52:32 +00:00
4 changed files with 33 additions and 0 deletions
@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
import io.micrometer.registry.otlp.CompressionMode;
import io.micrometer.registry.otlp.HistogramFlavor;
import org.jspecify.annotations.Nullable;
@@ -49,6 +50,11 @@ public class OtlpMetricsProperties extends StepRegistryProperties {
*/
private AggregationTemporality aggregationTemporality = AggregationTemporality.CUMULATIVE;
/**
* Compression mode to use when exporting metrics.
*/
private CompressionMode compressionMode = CompressionMode.NONE;
/**
* Headers for the exported metrics.
*/
@@ -96,6 +102,14 @@ public class OtlpMetricsProperties extends StepRegistryProperties {
this.aggregationTemporality = aggregationTemporality;
}
public CompressionMode getCompressionMode() {
return this.compressionMode;
}
public void setCompressionMode(CompressionMode compressionMode) {
this.compressionMode = compressionMode;
}
public @Nullable Map<String, String> getHeaders() {
return this.headers;
}
@@ -22,6 +22,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
import io.micrometer.registry.otlp.CompressionMode;
import io.micrometer.registry.otlp.HistogramFlavor;
import io.micrometer.registry.otlp.OtlpConfig;
@@ -72,6 +73,11 @@ class OtlpMetricsPropertiesConfigAdapter extends StepRegistryPropertiesConfigAda
return obtain(OtlpMetricsProperties::getAggregationTemporality, OtlpConfig.super::aggregationTemporality);
}
@Override
public CompressionMode compressionMode() {
return obtain(OtlpMetricsProperties::getCompressionMode, OtlpConfig.super::compressionMode);
}
@Override
public Map<String, String> resourceAttributes() {
Map<String, String> resourceAttributes = new LinkedHashMap<>();
@@ -20,6 +20,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.micrometer.registry.otlp.AggregationTemporality;
import io.micrometer.registry.otlp.CompressionMode;
import io.micrometer.registry.otlp.HistogramFlavor;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -88,6 +89,17 @@ class OtlpMetricsPropertiesConfigAdapterTests {
assertThat(createAdapter().aggregationTemporality()).isSameAs(AggregationTemporality.DELTA);
}
@Test
void whenPropertiesCompressionModeIsNotSetAdapterCompressionModeReturnsNone() {
assertThat(createAdapter().compressionMode()).isSameAs(CompressionMode.NONE);
}
@Test
void whenPropertiesCompressionModeIsSetAdapterCompressionModeReturnsIt() {
this.properties.setCompressionMode(CompressionMode.GZIP);
assertThat(createAdapter().compressionMode()).isSameAs(CompressionMode.GZIP);
}
@Test
void whenOpenTelemetryPropertiesResourceAttributesIsSetAdapterResourceAttributesReturnsIt() {
this.openTelemetryProperties.setResourceAttributes(Map.of("service.name", "boot-service"));
@@ -36,6 +36,7 @@ class OtlpMetricsPropertiesTests extends StepRegistryPropertiesTests {
OtlpConfig config = OtlpConfig.DEFAULT;
assertStepRegistryDefaultValues(properties, config);
assertThat(properties.getAggregationTemporality()).isSameAs(config.aggregationTemporality());
assertThat(properties.getCompressionMode()).isSameAs(config.compressionMode());
assertThat(properties.getHistogramFlavor()).isSameAs(config.histogramFlavor());
assertThat(properties.getMaxScale()).isEqualTo(config.maxScale());
assertThat(properties.getMaxBucketCount()).isEqualTo(config.maxBucketCount());