Skip to content

Commit

Permalink
Update to latest opentelemetry-configuration, add disabled support (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
jack-berg committed Aug 25, 2023
1 parent 7b51d4b commit 2f7b3c2
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 5 deletions.
2 changes: 1 addition & 1 deletion sdk-extensions/incubator/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
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
Expand Down Expand Up @@ -40,6 +41,10 @@ public OpenTelemetrySdk create(

OpenTelemetrySdkBuilder builder = OpenTelemetrySdk.builder();

if (Objects.equals(Boolean.TRUE, model.getDisabled())) {
return builder.build();
}

builder.setPropagators(
PropagatorsFactory.getInstance().create(model.getPropagators(), spiHelper, closeables));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
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;
Expand All @@ -42,6 +43,7 @@
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;
Expand All @@ -56,6 +58,7 @@ void read_KitchenSinkExampleFile() throws IOException {
OpenTelemetryConfiguration expected = new OpenTelemetryConfiguration();

expected.withFileFormat("0.1");
expected.withDisabled(false);

// General config
Resource resource =
Expand Down Expand Up @@ -118,11 +121,21 @@ void read_KitchenSinkExampleFile() throws IOException {
.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
Expand Down Expand Up @@ -192,7 +205,8 @@ void read_KitchenSinkExampleFile() throws IOException {
.withTimeout(10_000)
.withTemporalityPreference("delta")
.withDefaultHistogramAggregation(
"exponential_bucket_histogram"))));
DefaultHistogramAggregation
.BASE_2_EXPONENTIAL_BUCKET_HISTOGRAM))));
MetricReader metricReader3 =
new MetricReader()
.withPeriodic(
Expand All @@ -205,7 +219,8 @@ void read_KitchenSinkExampleFile() throws IOException {
.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"))
Expand Down Expand Up @@ -243,7 +258,7 @@ void read_KitchenSinkExampleFile() throws IOException {
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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
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;
Expand Down Expand Up @@ -111,6 +112,37 @@ void create_Defaults() {
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<>();
Expand Down

0 comments on commit 2f7b3c2

Please sign in to comment.