From 23a4c08b0b7706572d8fd18d0a3afe6cae93c613 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Mon, 5 Feb 2024 13:51:39 +0100 Subject: [PATCH] use duration parser of config properties for consistency --- .../autoconfigure/MetricExportProperties.java | 25 ------------------- .../OpenTelemetryAutoConfiguration.java | 18 ++++++------- 2 files changed, 8 insertions(+), 35 deletions(-) delete mode 100644 instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/MetricExportProperties.java diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/MetricExportProperties.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/MetricExportProperties.java deleted file mode 100644 index ef1090b68a5b..000000000000 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/MetricExportProperties.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.spring.autoconfigure; - -import java.time.Duration; -import javax.annotation.Nullable; -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties(prefix = "otel.metric.export") -public class MetricExportProperties { - - @Nullable private Duration interval; - - @Nullable - public Duration getInterval() { - return interval; - } - - public void setInterval(@Nullable Duration interval) { - this.interval = interval; - } -} diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java index 8ef6865c5588..75a15faa11e2 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java @@ -33,6 +33,7 @@ import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; import io.opentelemetry.sdk.trace.export.SpanExporter; import io.opentelemetry.sdk.trace.samplers.Sampler; +import java.time.Duration; import java.util.Collections; import java.util.List; import org.springframework.beans.factory.ObjectProvider; @@ -56,11 +57,7 @@ *

Updates the sampler probability for the configured {@link TracerProvider}. */ @Configuration -@EnableConfigurationProperties({ - MetricExportProperties.class, - SamplerProperties.class, - OtlpExporterProperties.class -}) +@EnableConfigurationProperties({SamplerProperties.class, OtlpExporterProperties.class}) public class OpenTelemetryAutoConfiguration { public OpenTelemetryAutoConfiguration() {} @@ -142,25 +139,26 @@ public SdkLoggerProvider sdkLoggerProvider( @Bean(destroyMethod = "") // SDK components are shutdown from the OpenTelemetry instance @ConditionalOnMissingBean public SdkMeterProvider sdkMeterProvider( - MetricExportProperties properties, + ConfigProperties configProperties, ObjectProvider> metricExportersProvider, Resource otelResource) { SdkMeterProviderBuilder meterProviderBuilder = SdkMeterProvider.builder(); metricExportersProvider.getIfAvailable(Collections::emptyList).stream() - .map(metricExporter -> createPeriodicMetricReader(properties, metricExporter)) + .map(metricExporter -> createPeriodicMetricReader(configProperties, metricExporter)) .forEach(meterProviderBuilder::registerMetricReader); return meterProviderBuilder.setResource(otelResource).build(); } private static PeriodicMetricReader createPeriodicMetricReader( - MetricExportProperties properties, MetricExporter metricExporter) { + ConfigProperties properties, MetricExporter metricExporter) { PeriodicMetricReaderBuilder metricReaderBuilder = PeriodicMetricReader.builder(metricExporter); - if (properties.getInterval() != null) { - metricReaderBuilder.setInterval(properties.getInterval()); + Duration interval = properties.getDuration("otel.metric.export.interval"); + if (interval != null) { + metricReaderBuilder.setInterval(interval); } return metricReaderBuilder.build(); }