|
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