|
33 | 33 | import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
|
34 | 34 | import io.opentelemetry.sdk.trace.export.SpanExporter;
|
35 | 35 | import io.opentelemetry.sdk.trace.samplers.Sampler;
|
| 36 | +import java.time.Duration; |
36 | 37 | import java.util.Collections;
|
37 | 38 | import java.util.List;
|
38 | 39 | import org.springframework.beans.factory.ObjectProvider;
|
|
56 | 57 | * <p>Updates the sampler probability for the configured {@link TracerProvider}.
|
57 | 58 | */
|
58 | 59 | @Configuration
|
59 |
| -@EnableConfigurationProperties({ |
60 |
| - MetricExportProperties.class, |
61 |
| - SamplerProperties.class, |
62 |
| - OtlpExporterProperties.class |
63 |
| -}) |
| 60 | +@EnableConfigurationProperties({SamplerProperties.class, OtlpExporterProperties.class}) |
64 | 61 | public class OpenTelemetryAutoConfiguration {
|
65 | 62 |
|
66 | 63 | public OpenTelemetryAutoConfiguration() {}
|
@@ -142,25 +139,26 @@ public SdkLoggerProvider sdkLoggerProvider(
|
142 | 139 | @Bean(destroyMethod = "") // SDK components are shutdown from the OpenTelemetry instance
|
143 | 140 | @ConditionalOnMissingBean
|
144 | 141 | public SdkMeterProvider sdkMeterProvider(
|
145 |
| - MetricExportProperties properties, |
| 142 | + ConfigProperties configProperties, |
146 | 143 | ObjectProvider<List<MetricExporter>> metricExportersProvider,
|
147 | 144 | Resource otelResource) {
|
148 | 145 |
|
149 | 146 | SdkMeterProviderBuilder meterProviderBuilder = SdkMeterProvider.builder();
|
150 | 147 |
|
151 | 148 | metricExportersProvider.getIfAvailable(Collections::emptyList).stream()
|
152 |
| - .map(metricExporter -> createPeriodicMetricReader(properties, metricExporter)) |
| 149 | + .map(metricExporter -> createPeriodicMetricReader(configProperties, metricExporter)) |
153 | 150 | .forEach(meterProviderBuilder::registerMetricReader);
|
154 | 151 |
|
155 | 152 | return meterProviderBuilder.setResource(otelResource).build();
|
156 | 153 | }
|
157 | 154 |
|
158 | 155 | private static PeriodicMetricReader createPeriodicMetricReader(
|
159 |
| - MetricExportProperties properties, MetricExporter metricExporter) { |
| 156 | + ConfigProperties properties, MetricExporter metricExporter) { |
160 | 157 | PeriodicMetricReaderBuilder metricReaderBuilder =
|
161 | 158 | PeriodicMetricReader.builder(metricExporter);
|
162 |
| - if (properties.getInterval() != null) { |
163 |
| - metricReaderBuilder.setInterval(properties.getInterval()); |
| 159 | + Duration interval = properties.getDuration("otel.metric.export.interval"); |
| 160 | + if (interval != null) { |
| 161 | + metricReaderBuilder.setInterval(interval); |
164 | 162 | }
|
165 | 163 | return metricReaderBuilder.build();
|
166 | 164 | }
|
|
0 commit comments