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
|
// ... proceed with normal sourcesJar, compileJava, etc
|
||||||
|
|
||||||
// TODO(jack-berg): update ref to be released version when available
|
// 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 configurationRepoZip = "https://github.com/open-telemetry/opentelemetry-configuration/archive/$configurationRef.zip"
|
||||||
val buildDirectory = layout.buildDirectory.asFile.get()
|
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 io.opentelemetry.sdk.resources.Resource;
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
final class OpenTelemetryConfigurationFactory
|
final class OpenTelemetryConfigurationFactory
|
||||||
|
|
@ -40,6 +41,10 @@ final class OpenTelemetryConfigurationFactory
|
||||||
|
|
||||||
OpenTelemetrySdkBuilder builder = OpenTelemetrySdk.builder();
|
OpenTelemetrySdkBuilder builder = OpenTelemetrySdk.builder();
|
||||||
|
|
||||||
|
if (Objects.equals(Boolean.TRUE, model.getDisabled())) {
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
builder.setPropagators(
|
builder.setPropagators(
|
||||||
PropagatorsFactory.getInstance().create(model.getPropagators(), spiHelper, closeables));
|
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.OpenTelemetryConfiguration;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Otlp;
|
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;
|
||||||
|
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.ParentBased;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PeriodicMetricReader;
|
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.PeriodicMetricReader;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Prometheus;
|
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.TraceIdRatioBased;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProvider;
|
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.View;
|
||||||
|
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Zipkin;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
@ -56,6 +58,7 @@ class ConfigurationReaderTest {
|
||||||
OpenTelemetryConfiguration expected = new OpenTelemetryConfiguration();
|
OpenTelemetryConfiguration expected = new OpenTelemetryConfiguration();
|
||||||
|
|
||||||
expected.withFileFormat("0.1");
|
expected.withFileFormat("0.1");
|
||||||
|
expected.withDisabled(false);
|
||||||
|
|
||||||
// General config
|
// General config
|
||||||
Resource resource =
|
Resource resource =
|
||||||
|
|
@ -118,11 +121,21 @@ class ConfigurationReaderTest {
|
||||||
.withCompression("gzip")
|
.withCompression("gzip")
|
||||||
.withTimeout(10_000))));
|
.withTimeout(10_000))));
|
||||||
SpanProcessor spanProcessor2 =
|
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()
|
new SpanProcessor()
|
||||||
.withSimple(
|
.withSimple(
|
||||||
new SimpleSpanProcessor()
|
new SimpleSpanProcessor()
|
||||||
.withExporter(new SpanExporter().withConsole(new Console())));
|
.withExporter(new SpanExporter().withConsole(new Console())));
|
||||||
tracerProvider.withProcessors(Arrays.asList(spanProcessor1, spanProcessor2));
|
tracerProvider.withProcessors(Arrays.asList(spanProcessor1, spanProcessor2, spanProcessor3));
|
||||||
|
|
||||||
expected.withTracerProvider(tracerProvider);
|
expected.withTracerProvider(tracerProvider);
|
||||||
// end TracerProvider config
|
// end TracerProvider config
|
||||||
|
|
@ -192,7 +205,8 @@ class ConfigurationReaderTest {
|
||||||
.withTimeout(10_000)
|
.withTimeout(10_000)
|
||||||
.withTemporalityPreference("delta")
|
.withTemporalityPreference("delta")
|
||||||
.withDefaultHistogramAggregation(
|
.withDefaultHistogramAggregation(
|
||||||
"exponential_bucket_histogram"))));
|
DefaultHistogramAggregation
|
||||||
|
.BASE_2_EXPONENTIAL_BUCKET_HISTOGRAM))));
|
||||||
MetricReader metricReader3 =
|
MetricReader metricReader3 =
|
||||||
new MetricReader()
|
new MetricReader()
|
||||||
.withPeriodic(
|
.withPeriodic(
|
||||||
|
|
@ -205,7 +219,8 @@ class ConfigurationReaderTest {
|
||||||
.withSelector(
|
.withSelector(
|
||||||
new Selector()
|
new Selector()
|
||||||
.withInstrumentName("my-instrument")
|
.withInstrumentName("my-instrument")
|
||||||
.withInstrumentType("histogram")
|
.withInstrumentType(Selector.InstrumentType.HISTOGRAM)
|
||||||
|
.withUnit("ms")
|
||||||
.withMeterName("my-meter")
|
.withMeterName("my-meter")
|
||||||
.withMeterVersion("1.0.0")
|
.withMeterVersion("1.0.0")
|
||||||
.withMeterSchemaUrl("https://opentelemetry.io/schemas/1.16.0"))
|
.withMeterSchemaUrl("https://opentelemetry.io/schemas/1.16.0"))
|
||||||
|
|
@ -243,7 +258,7 @@ class ConfigurationReaderTest {
|
||||||
assertThat(configTracerProvider.getLimits()).isEqualTo(spanLimits);
|
assertThat(configTracerProvider.getLimits()).isEqualTo(spanLimits);
|
||||||
assertThat(configTracerProvider.getSampler()).isEqualTo(sampler);
|
assertThat(configTracerProvider.getSampler()).isEqualTo(sampler);
|
||||||
assertThat(configTracerProvider.getProcessors())
|
assertThat(configTracerProvider.getProcessors())
|
||||||
.isEqualTo(Arrays.asList(spanProcessor1, spanProcessor2));
|
.isEqualTo(Arrays.asList(spanProcessor1, spanProcessor2, spanProcessor3));
|
||||||
|
|
||||||
// LoggerProvider config
|
// LoggerProvider config
|
||||||
LoggerProvider configLoggerProvider = config.getLoggerProvider();
|
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.Otlp;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.Resource;
|
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.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.SpanExporter;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessor;
|
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.SpanProcessor;
|
||||||
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProvider;
|
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.TracerProvider;
|
||||||
|
|
@ -111,6 +112,37 @@ class OpenTelemetryConfigurationFactoryTest {
|
||||||
assertThat(sdk.toString()).isEqualTo(expectedSdk.toString());
|
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
|
@Test
|
||||||
void create_Configured() {
|
void create_Configured() {
|
||||||
List<Closeable> closeables = new ArrayList<>();
|
List<Closeable> closeables = new ArrayList<>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue