Update to latest opentelemetry-configuration, add disabled support (#5766)
This commit is contained in:
		
							parent
							
								
									7b51d4bbf8
								
							
						
					
					
						commit
						2f7b3c2bb2
					
				| 
						 | 
				
			
			@ -53,7 +53,7 @@ dependencies {
 | 
			
		|||
// ... proceed with normal sourcesJar, compileJava, etc
 | 
			
		||||
 | 
			
		||||
// TODO(jack-berg): update ref to be released version when available
 | 
			
		||||
val configurationRef = "2107dbb6f2a6c99fe2f55d550796ee7e2286fd1d"
 | 
			
		||||
val configurationRef = "0eb96de17c6533f668163873d95bd026bce1d8fb"
 | 
			
		||||
val configurationRepoZip = "https://github.com/open-telemetry/opentelemetry-configuration/archive/$configurationRef.zip"
 | 
			
		||||
val buildDirectory = layout.buildDirectory.asFile.get()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTe
 | 
			
		|||
import io.opentelemetry.sdk.resources.Resource;
 | 
			
		||||
import java.io.Closeable;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
import javax.annotation.Nullable;
 | 
			
		||||
 | 
			
		||||
final class OpenTelemetryConfigurationFactory
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +41,10 @@ final class OpenTelemetryConfigurationFactory
 | 
			
		|||
 | 
			
		||||
    OpenTelemetrySdkBuilder builder = OpenTelemetrySdk.builder();
 | 
			
		||||
 | 
			
		||||
    if (Objects.equals(Boolean.TRUE, model.getDisabled())) {
 | 
			
		||||
      return builder.build();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    builder.setPropagators(
 | 
			
		||||
        PropagatorsFactory.getInstance().create(model.getPropagators(), spiHelper, closeables));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@ import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Metric
 | 
			
		|||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfiguration;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Otlp;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpMetric;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OtlpMetric.DefaultHistogramAggregation;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.ParentBased;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PeriodicMetricReader;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Prometheus;
 | 
			
		||||
| 
						 | 
				
			
			@ -42,6 +43,7 @@ import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Stream
 | 
			
		|||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TraceIdRatioBased;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProvider;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.View;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Zipkin;
 | 
			
		||||
import java.io.FileInputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +58,7 @@ class ConfigurationReaderTest {
 | 
			
		|||
    OpenTelemetryConfiguration expected = new OpenTelemetryConfiguration();
 | 
			
		||||
 | 
			
		||||
    expected.withFileFormat("0.1");
 | 
			
		||||
    expected.withDisabled(false);
 | 
			
		||||
 | 
			
		||||
    // General config
 | 
			
		||||
    Resource resource =
 | 
			
		||||
| 
						 | 
				
			
			@ -118,11 +121,21 @@ class ConfigurationReaderTest {
 | 
			
		|||
                                    .withCompression("gzip")
 | 
			
		||||
                                    .withTimeout(10_000))));
 | 
			
		||||
    SpanProcessor spanProcessor2 =
 | 
			
		||||
        new SpanProcessor()
 | 
			
		||||
            .withBatch(
 | 
			
		||||
                new BatchSpanProcessor()
 | 
			
		||||
                    .withExporter(
 | 
			
		||||
                        new SpanExporter()
 | 
			
		||||
                            .withZipkin(
 | 
			
		||||
                                new Zipkin()
 | 
			
		||||
                                    .withEndpoint("http://localhost:9411/api/v2/spans")
 | 
			
		||||
                                    .withTimeout(10_000))));
 | 
			
		||||
    SpanProcessor spanProcessor3 =
 | 
			
		||||
        new SpanProcessor()
 | 
			
		||||
            .withSimple(
 | 
			
		||||
                new SimpleSpanProcessor()
 | 
			
		||||
                    .withExporter(new SpanExporter().withConsole(new Console())));
 | 
			
		||||
    tracerProvider.withProcessors(Arrays.asList(spanProcessor1, spanProcessor2));
 | 
			
		||||
    tracerProvider.withProcessors(Arrays.asList(spanProcessor1, spanProcessor2, spanProcessor3));
 | 
			
		||||
 | 
			
		||||
    expected.withTracerProvider(tracerProvider);
 | 
			
		||||
    // end TracerProvider config
 | 
			
		||||
| 
						 | 
				
			
			@ -192,7 +205,8 @@ class ConfigurationReaderTest {
 | 
			
		|||
                                    .withTimeout(10_000)
 | 
			
		||||
                                    .withTemporalityPreference("delta")
 | 
			
		||||
                                    .withDefaultHistogramAggregation(
 | 
			
		||||
                                        "exponential_bucket_histogram"))));
 | 
			
		||||
                                        DefaultHistogramAggregation
 | 
			
		||||
                                            .BASE_2_EXPONENTIAL_BUCKET_HISTOGRAM))));
 | 
			
		||||
    MetricReader metricReader3 =
 | 
			
		||||
        new MetricReader()
 | 
			
		||||
            .withPeriodic(
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +219,8 @@ class ConfigurationReaderTest {
 | 
			
		|||
            .withSelector(
 | 
			
		||||
                new Selector()
 | 
			
		||||
                    .withInstrumentName("my-instrument")
 | 
			
		||||
                    .withInstrumentType("histogram")
 | 
			
		||||
                    .withInstrumentType(Selector.InstrumentType.HISTOGRAM)
 | 
			
		||||
                    .withUnit("ms")
 | 
			
		||||
                    .withMeterName("my-meter")
 | 
			
		||||
                    .withMeterVersion("1.0.0")
 | 
			
		||||
                    .withMeterSchemaUrl("https://opentelemetry.io/schemas/1.16.0"))
 | 
			
		||||
| 
						 | 
				
			
			@ -243,7 +258,7 @@ class ConfigurationReaderTest {
 | 
			
		|||
      assertThat(configTracerProvider.getLimits()).isEqualTo(spanLimits);
 | 
			
		||||
      assertThat(configTracerProvider.getSampler()).isEqualTo(sampler);
 | 
			
		||||
      assertThat(configTracerProvider.getProcessors())
 | 
			
		||||
          .isEqualTo(Arrays.asList(spanProcessor1, spanProcessor2));
 | 
			
		||||
          .isEqualTo(Arrays.asList(spanProcessor1, spanProcessor2, spanProcessor3));
 | 
			
		||||
 | 
			
		||||
      // LoggerProvider config
 | 
			
		||||
      LoggerProvider configLoggerProvider = config.getLoggerProvider();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTe
 | 
			
		|||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Otlp;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Resource;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Sampler;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SimpleLogRecordProcessor;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanExporter;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessor;
 | 
			
		||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProvider;
 | 
			
		||||
| 
						 | 
				
			
			@ -111,6 +112,37 @@ class OpenTelemetryConfigurationFactoryTest {
 | 
			
		|||
    assertThat(sdk.toString()).isEqualTo(expectedSdk.toString());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void create_Disabled() {
 | 
			
		||||
    List<Closeable> closeables = new ArrayList<>();
 | 
			
		||||
    OpenTelemetrySdk expectedSdk = OpenTelemetrySdk.builder().build();
 | 
			
		||||
    cleanup.addCloseable(expectedSdk);
 | 
			
		||||
 | 
			
		||||
    OpenTelemetrySdk sdk =
 | 
			
		||||
        OpenTelemetryConfigurationFactory.getInstance()
 | 
			
		||||
            .create(
 | 
			
		||||
                new OpenTelemetryConfiguration()
 | 
			
		||||
                    .withFileFormat("0.1")
 | 
			
		||||
                    .withDisabled(true)
 | 
			
		||||
                    // Logger provider configuration should be ignored since SDK is disabled
 | 
			
		||||
                    .withLoggerProvider(
 | 
			
		||||
                        new LoggerProvider()
 | 
			
		||||
                            .withProcessors(
 | 
			
		||||
                                Collections.singletonList(
 | 
			
		||||
                                    new LogRecordProcessor()
 | 
			
		||||
                                        .withSimple(
 | 
			
		||||
                                            new SimpleLogRecordProcessor()
 | 
			
		||||
                                                .withExporter(
 | 
			
		||||
                                                    new LogRecordExporter()
 | 
			
		||||
                                                        .withOtlp(new Otlp())))))),
 | 
			
		||||
                spiHelper,
 | 
			
		||||
                closeables);
 | 
			
		||||
    cleanup.addCloseable(sdk);
 | 
			
		||||
    cleanup.addCloseables(closeables);
 | 
			
		||||
 | 
			
		||||
    assertThat(sdk.toString()).isEqualTo(expectedSdk.toString());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void create_Configured() {
 | 
			
		||||
    List<Closeable> closeables = new ArrayList<>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue