Skip to content

Commit 7b973c3

Browse files
committed
add enabled
1 parent f90ac24 commit 7b973c3

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

inferred-spans/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ file_format: 1.0-rc.1
5353
tracer_provider:
5454
processors:
5555
- experimental_inferred_spans:
56-
enabled: true
56+
enabled: true # true by default unlike autoconfiguration described above
5757
sampling_interval: 25ms
5858
included_classes: "org.example.myapp.*"
5959
excluded_classes: "java.*"

inferred-spans/src/main/java/io/opentelemetry/contrib/inferredspans/InferredSpansSpanProcessorProvider.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,18 @@
88
import com.google.auto.service.AutoService;
99
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1010
import io.opentelemetry.instrumentation.config.bridge.DeclarativeConfigPropertiesBridgeBuilder;
11+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1112
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
1213
import io.opentelemetry.sdk.trace.SpanProcessor;
14+
import java.util.logging.Logger;
1315

1416
@SuppressWarnings("rawtypes")
1517
@AutoService(ComponentProvider.class)
1618
public class InferredSpansSpanProcessorProvider implements ComponentProvider<SpanProcessor> {
1719

20+
private static final Logger log =
21+
Logger.getLogger(InferredSpansSpanProcessorProvider.class.getName());
22+
1823
private static final String PREFIX = "otel.inferred.spans.";
1924

2025
@Override
@@ -23,7 +28,7 @@ public String getName() {
2328
}
2429

2530
@Override
26-
public SpanProcessor create(DeclarativeConfigProperties config) {
31+
public SpanProcessor create(DeclarativeConfigProperties declarativeConfigProperties) {
2732
DeclarativeConfigPropertiesBridgeBuilder builder =
2833
new DeclarativeConfigPropertiesBridgeBuilder();
2934

@@ -33,7 +38,13 @@ public SpanProcessor create(DeclarativeConfigProperties config) {
3338
builder.addMapping(property, property.substring(PREFIX.length()).replace('.', '_'));
3439
}
3540

36-
return InferredSpansConfig.createSpanProcessor(builder.build(config));
41+
ConfigProperties properties = builder.build(declarativeConfigProperties);
42+
if (properties.getBoolean(InferredSpansConfig.ENABLED_OPTION, true)) {
43+
return InferredSpansConfig.createSpanProcessor(properties);
44+
} else {
45+
log.finest("Not enabling inferred spans processor because enabled=false");
46+
return SpanProcessor.composite();
47+
}
3748
}
3849

3950
@Override
Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.junit.jupiter.api.condition.DisabledOnOs;
2121

2222
@DisabledOnOs(WINDOWS) // Uses async-profiler, which is not supported on Windows
23-
class InferredSpansCustomizerProviderTest {
23+
class InferredSpansSpanProcessorProviderTest {
2424

2525
@BeforeEach
2626
@AfterEach
@@ -36,7 +36,6 @@ void declarativeConfig() {
3636
+ "tracer_provider:\n"
3737
+ " processors:\n"
3838
+ " - experimental_inferred_spans:\n"
39-
+ " enabled: false\n"
4039
+ " backup_diagnostic_files: true\n";
4140

4241
OpenTelemetrySdk sdk =
@@ -53,4 +52,28 @@ void declarativeConfig() {
5352
.extracting("backupDiagnosticFiles")
5453
.isEqualTo(true);
5554
}
55+
56+
@Test
57+
void declarativeConfigDisabled() {
58+
String yaml =
59+
"file_format: 1.0-rc.1\n"
60+
+ "tracer_provider:\n"
61+
+ " processors:\n"
62+
+ " - experimental_inferred_spans:\n"
63+
+ " enabled: false\n";
64+
65+
OpenTelemetrySdk sdk =
66+
DeclarativeConfiguration.parseAndCreate(
67+
new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8)));
68+
69+
assertThat(sdk)
70+
.extracting("tracerProvider")
71+
.extracting("delegate")
72+
.extracting("sharedState")
73+
.extracting("activeSpanProcessor")
74+
.satisfies(
75+
p ->
76+
assertThat(p.getClass().getName())
77+
.isEqualTo("io.opentelemetry.sdk.trace.NoopSpanProcessor"));
78+
}
5679
}

0 commit comments

Comments
 (0)