Update to latest opentelemetry-configuration, add disabled support (#5766)

This commit is contained in:
jack-berg 2023-08-25 10:31:58 -05:00 committed by GitHub
parent 7b51d4bbf8
commit 2f7b3c2bb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 57 additions and 5 deletions

View File

@ -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()

View File

@ -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));

View File

@ -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();

View File

@ -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<>();