Skip to content

Commit

Permalink
use duration parser of config properties for consistency (#10512)
Browse files Browse the repository at this point in the history
  • Loading branch information
zeitlinger committed Feb 13, 2024
1 parent d73304b commit 485b8f4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 35 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -56,11 +57,7 @@
* <p>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() {}
Expand Down Expand Up @@ -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<List<MetricExporter>> 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();
}
Expand Down

0 comments on commit 485b8f4

Please sign in to comment.