AutoConfiguredOpenTelemetrySdkBuilder does not set GlobalOpenTelemetry by default (#5564)

This commit is contained in:
jack-berg 2023-06-22 16:14:24 -05:00 committed by GitHub
parent cb6d7133ac
commit 0e318fb84c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 13 additions and 25 deletions

View File

@ -28,7 +28,7 @@ public abstract class AutoConfiguredOpenTelemetrySdk {
* <p>This will automatically set the resulting SDK as the {@link GlobalOpenTelemetry} instance.
*/
public static AutoConfiguredOpenTelemetrySdk initialize() {
return builder().build();
return builder().setResultAsGlobal().build();
}
/**

View File

@ -89,7 +89,7 @@ public final class AutoConfiguredOpenTelemetrySdkBuilder implements AutoConfigur
private boolean registerShutdownHook = true;
private boolean setResultAsGlobal = true;
private boolean setResultAsGlobal = false;
private boolean customized;
@ -297,9 +297,11 @@ public final class AutoConfiguredOpenTelemetrySdkBuilder implements AutoConfigur
/**
* Sets whether the configured {@link OpenTelemetrySdk} should be set as the application's
* {@linkplain io.opentelemetry.api.GlobalOpenTelemetry global} instance.
*
* <p>By default, {@link GlobalOpenTelemetry} is not set.
*/
public AutoConfiguredOpenTelemetrySdkBuilder setResultAsGlobal(boolean setResultAsGlobal) {
this.setResultAsGlobal = setResultAsGlobal;
public AutoConfiguredOpenTelemetrySdkBuilder setResultAsGlobal() {
this.setResultAsGlobal = true;
return this;
}

View File

@ -147,7 +147,6 @@ class AutoConfiguredOpenTelemetrySdkTest {
GlobalEventEmitterProvider.resetForTest();
builder =
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.addPropertiesSupplier(disableExportPropertySupplier());
}
@ -355,7 +354,7 @@ class AutoConfiguredOpenTelemetrySdkTest {
void builder_setResultAsGlobalFalse() {
GlobalOpenTelemetry.set(OpenTelemetry.noop());
OpenTelemetrySdk openTelemetry = builder.setResultAsGlobal(false).build().getOpenTelemetrySdk();
OpenTelemetrySdk openTelemetry = builder.build().getOpenTelemetrySdk();
assertThat(GlobalOpenTelemetry.get()).extracting("delegate").isNotSameAs(openTelemetry);
assertThat(GlobalEventEmitterProvider.get()).isNotSameAs(openTelemetry.getSdkLoggerProvider());
@ -363,7 +362,7 @@ class AutoConfiguredOpenTelemetrySdkTest {
@Test
void builder_setResultAsGlobalTrue() {
OpenTelemetrySdk openTelemetry = builder.setResultAsGlobal(true).build().getOpenTelemetrySdk();
OpenTelemetrySdk openTelemetry = builder.setResultAsGlobal().build().getOpenTelemetrySdk();
assertThat(GlobalOpenTelemetry.get()).extracting("delegate").isSameAs(openTelemetry);
assertThat(GlobalEventEmitterProvider.get())
@ -378,7 +377,7 @@ class AutoConfiguredOpenTelemetrySdkTest {
Thread thread = new Thread();
doReturn(thread).when(builder).shutdownHook(any());
OpenTelemetrySdk sdk = builder.setResultAsGlobal(false).build().getOpenTelemetrySdk();
OpenTelemetrySdk sdk = builder.build().getOpenTelemetrySdk();
verify(builder, times(1)).shutdownHook(sdk);
assertThat(Runtime.getRuntime().removeShutdownHook(thread)).isTrue();
@ -443,8 +442,7 @@ class AutoConfiguredOpenTelemetrySdkTest {
(resource, config) -> resource.merge(Resource.builder().put("cow", "moo").build()))
.addPropertiesSupplier(() -> singletonMap("otel.metrics.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.traces.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.logs.exporter", "none"))
.setResultAsGlobal(false);
.addPropertiesSupplier(() -> singletonMap("otel.logs.exporter", "none"));
AutoConfiguredOpenTelemetrySdk autoConfigured = autoConfiguration.build();
assertThat(autoConfigured.getResource().getAttribute(stringKey("cow"))).isEqualTo("moo");
@ -515,7 +513,6 @@ class AutoConfiguredOpenTelemetrySdkTest {
.addPropertiesSupplier(() -> singletonMap("otel.traces.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.logs.exporter", "none"))
.addPropertiesSupplier(() -> singletonMap("otel.propagators", "foo"))
.setResultAsGlobal(false)
.build())
.isInstanceOf(ConfigurationException.class)
.hasMessageContaining("Unrecognized value for otel.propagators");

View File

@ -15,11 +15,7 @@ class OrderedSpiTest {
@Test
void shouldLoadSpiImplementationsInOrder() {
AutoConfiguredOpenTelemetrySdk sdk =
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.disableShutdownHook()
.build();
AutoConfiguredOpenTelemetrySdk sdk = AutoConfiguredOpenTelemetrySdk.builder().build();
assertThat(sdk.getResource().getAttributes().asMap())
.contains(

View File

@ -16,8 +16,7 @@ class ConditionalResourceProviderTest {
@Test
void shouldConditionallyProvideResourceAttributes_skipBasedOnPreviousResource() {
AutoConfiguredOpenTelemetrySdk sdk =
AutoConfiguredOpenTelemetrySdk.builder().setResultAsGlobal(false).build();
AutoConfiguredOpenTelemetrySdk sdk = AutoConfiguredOpenTelemetrySdk.builder().build();
assertThat(sdk.getResource().getAttributes().asMap())
.contains(entry(ResourceAttributes.SERVICE_NAME, "test-service"));
@ -27,7 +26,6 @@ class ConditionalResourceProviderTest {
void shouldConditionallyProvideResourceAttributes_skipBasedOnConfig() {
AutoConfiguredOpenTelemetrySdk sdk =
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.addPropertiesSupplier(() -> singletonMap("skip-first-resource-provider", "true"))
.build();

View File

@ -44,10 +44,7 @@ class AutoConfiguredOpenTelemetrySdkTest {
@Test
void initializeAndGet_noGlobal() {
try (OpenTelemetrySdk sdk =
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.build()
.getOpenTelemetrySdk()) {
AutoConfiguredOpenTelemetrySdk.builder().build().getOpenTelemetrySdk()) {
assertThat(GlobalOpenTelemetry.get()).isNotSameAs(sdk);
}
}

View File

@ -72,7 +72,6 @@ class MetricExporterConfigurationTest {
try (OpenTelemetrySdk sdk =
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.setConfig(DefaultConfigProperties.createForTest(config))
.build()
.getOpenTelemetrySdk()) {

View File

@ -28,7 +28,6 @@ class ViewConfigCustomizerTest {
void customizeMeterProvider_Spi() {
InMemoryMetricReader reader = InMemoryMetricReader.create();
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal(false)
.addPropertiesSupplier(
() ->
ImmutableMap.of(