|
21 | 21 | import static co.elastic.otel.ElasticUserAgentHeader.HEADER_NAME; |
22 | 22 | import static co.elastic.otel.ElasticUserAgentHeader.OTLP_GRPC; |
23 | 23 | import static co.elastic.otel.ElasticUserAgentHeader.OTLP_HTTP; |
24 | | -import static java.util.Objects.requireNonNull; |
25 | 24 | import static java.util.stream.Collectors.toSet; |
26 | 25 |
|
27 | 26 | import com.google.auto.service.AutoService; |
28 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizer; |
29 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfigurationCustomizerProvider; |
30 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.BatchLogRecordProcessorModel; |
31 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.BatchSpanProcessorModel; |
32 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectionModel; |
33 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ExperimentalResourceDetectorModel; |
34 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LogRecordExporterModel; |
35 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.LoggerProviderModel; |
36 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.MeterProviderModel; |
37 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.NameStringValuePairModel; |
38 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel; |
39 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpGrpcExporterModel; |
40 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpGrpcMetricExporterModel; |
41 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpHttpExporterModel; |
42 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpHttpMetricExporterModel; |
43 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PeriodicMetricReaderModel; |
44 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PushMetricExporterModel; |
45 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ResourceModel; |
46 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleLogRecordProcessorModel; |
47 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleSpanProcessorModel; |
48 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporterModel; |
49 | | -import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProviderModel; |
| 27 | +import io.opentelemetry.sdk.autoconfigure.declarativeconfig.DeclarativeConfigurationCustomizer; |
| 28 | +import io.opentelemetry.sdk.autoconfigure.declarativeconfig.DeclarativeConfigurationCustomizerProvider; |
| 29 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.BatchLogRecordProcessorModel; |
| 30 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.BatchSpanProcessorModel; |
| 31 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.ExperimentalResourceDetectionModel; |
| 32 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.ExperimentalResourceDetectorModel; |
| 33 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.LogRecordExporterModel; |
| 34 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.LoggerProviderModel; |
| 35 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.MeterProviderModel; |
| 36 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.NameStringValuePairModel; |
| 37 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.OpenTelemetryConfigurationModel; |
| 38 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.OtlpGrpcExporterModel; |
| 39 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.OtlpGrpcMetricExporterModel; |
| 40 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.OtlpHttpExporterModel; |
| 41 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.OtlpHttpMetricExporterModel; |
| 42 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.PeriodicMetricReaderModel; |
| 43 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.PushMetricExporterModel; |
| 44 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.ResourceModel; |
| 45 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.SimpleLogRecordProcessorModel; |
| 46 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.SimpleSpanProcessorModel; |
| 47 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.SpanExporterModel; |
| 48 | +import io.opentelemetry.sdk.declarativeconfig.internal.model.TracerProviderModel; |
50 | 49 | import java.util.ArrayList; |
51 | 50 | import java.util.Collections; |
52 | 51 | import java.util.List; |
@@ -90,18 +89,23 @@ private static void customizeResources(OpenTelemetryConfigurationModel model) { |
90 | 89 | detectionDevelopment = new ExperimentalResourceDetectionModel(); |
91 | 90 | resource.withDetectionDevelopment(detectionDevelopment); |
92 | 91 | } |
93 | | - List<ExperimentalResourceDetectorModel> detectors = |
94 | | - requireNonNull(detectionDevelopment.getDetectors()); |
95 | | - |
96 | | - Set<String> names = |
97 | | - detectors.stream() |
98 | | - .flatMap(detector -> detector.getAdditionalProperties().keySet().stream()) |
99 | | - .collect(toSet()); |
| 92 | + List<ExperimentalResourceDetectorModel> detectors = detectionDevelopment.getDetectors(); |
| 93 | + Set<String> names = Collections.emptySet(); |
| 94 | + if (detectors != null) { |
| 95 | + names = |
| 96 | + detectors.stream() |
| 97 | + .flatMap(detector -> detector.getAdditionalProperties().keySet().stream()) |
| 98 | + .collect(toSet()); |
| 99 | + } |
100 | 100 |
|
101 | 101 | // add at the end to make it have priority over upstream distro provider (which is added 1st) |
102 | 102 | if (!names.contains(ElasticDistroComponentProvider.NAME)) { |
103 | 103 | ExperimentalResourceDetectorModel detector = new ExperimentalResourceDetectorModel(); |
104 | 104 | detector.getAdditionalProperties().put(ElasticDistroComponentProvider.NAME, null); |
| 105 | + if (detectors == null) { |
| 106 | + detectors = new ArrayList<>(); |
| 107 | + detectionDevelopment.withDetectors(detectors); |
| 108 | + } |
105 | 109 | detectors.add(detector); |
106 | 110 | } |
107 | 111 | } |
|
0 commit comments