Skip to content

Commit 39e1fcb

Browse files
author
Mateusz Rzeszutek
authored
Rename view and controller suppression config properties (open-telemetry#5747)
* Rename view and controller suppression config properties * code review comments
1 parent 27e8201 commit 39e1fcb

File tree

23 files changed

+68
-34
lines changed

23 files changed

+68
-34
lines changed

docs/contributing/using-instrumenter-api.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,8 @@ method.
420420
### Disable the instrumentation
421421

422422
In some rare cases it may be useful to completely disable the constructed `Instrumenter`, for
423-
example, based on a configuration property. The `InstrumenterBuilder` exposes a `setDisabled()`
424-
method for that: passing `true` will turn the newly created `Instrumenter` into a no-op instance.
423+
example, based on a configuration property. The `InstrumenterBuilder` exposes a `setEnabled()`
424+
method for that: passing `false` will turn the newly created `Instrumenter` into a no-op instance.
425425

426426
### Finally, set the span kind with the `SpanKindExtractor` and get a new `Instrumenter`!
427427

instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/config/ExperimentalConfig.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,22 @@ public ExperimentalConfig(Config config) {
2323
this.config = config;
2424
}
2525

26-
public boolean suppressControllerSpans() {
26+
public boolean controllerTelemetryEnabled() {
27+
// TODO: remove that `suppress...` flag after 1.13 release
28+
boolean suppressControllerSpans =
29+
config.getBoolean(
30+
"otel.instrumentation.common.experimental.suppress-controller-spans", false);
2731
return config.getBoolean(
28-
"otel.instrumentation.common.experimental.suppress-controller-spans", false);
32+
"otel.instrumentation.common.experimental.controller-telemetry.enabled",
33+
!suppressControllerSpans);
2934
}
3035

31-
public boolean suppressViewSpans() {
32-
return config.getBoolean("otel.instrumentation.common.experimental.suppress-view-spans", false);
36+
public boolean viewTelemetryEnabled() {
37+
// TODO: remove that `suppress...` flag after 1.13 release
38+
boolean suppressViewSpans =
39+
config.getBoolean("otel.instrumentation.common.experimental.suppress-view-spans", false);
40+
return config.getBoolean(
41+
"otel.instrumentation.common.experimental.view-telemetry.enabled", !suppressViewSpans);
3342
}
3443

3544
public boolean messagingReceiveInstrumentationEnabled() {

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/Instrumenter.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public static <REQUEST, RESPONSE> InstrumenterBuilder<REQUEST, RESPONSE> builder
107107
private final List<? extends RequestListener> requestListeners;
108108
private final ErrorCauseExtractor errorCauseExtractor;
109109
@Nullable private final TimeExtractor<REQUEST, RESPONSE> timeExtractor;
110-
private final boolean disabled;
110+
private final boolean enabled;
111111
private final SpanSuppressionStrategy spanSuppressionStrategy;
112112

113113
Instrumenter(InstrumenterBuilder<REQUEST, RESPONSE> builder) {
@@ -123,7 +123,7 @@ public static <REQUEST, RESPONSE> InstrumenterBuilder<REQUEST, RESPONSE> builder
123123
this.requestListeners = new ArrayList<>(builder.requestListeners);
124124
this.errorCauseExtractor = builder.errorCauseExtractor;
125125
this.timeExtractor = builder.timeExtractor;
126-
this.disabled = builder.disabled;
126+
this.enabled = builder.enabled;
127127
this.spanSuppressionStrategy = builder.getSpanSuppressionStrategy();
128128
}
129129

@@ -134,7 +134,7 @@ public static <REQUEST, RESPONSE> InstrumenterBuilder<REQUEST, RESPONSE> builder
134134
* without calling those methods.
135135
*/
136136
public boolean shouldStart(Context parentContext, REQUEST request) {
137-
if (disabled) {
137+
if (!enabled) {
138138
return false;
139139
}
140140
SpanKind spanKind = spanKindExtractor.extract(request);

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBuilder.java

+17-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public final class InstrumenterBuilder<REQUEST, RESPONSE> {
5555
SpanStatusExtractor.getDefault();
5656
ErrorCauseExtractor errorCauseExtractor = ErrorCauseExtractor.jdk();
5757
@Nullable TimeExtractor<REQUEST, RESPONSE> timeExtractor = null;
58-
boolean disabled = false;
58+
boolean enabled = true;
5959

6060
private boolean enableSpanSuppressionByType = ENABLE_SPAN_SUPPRESSION_BY_TYPE;
6161

@@ -159,11 +159,25 @@ public InstrumenterBuilder<REQUEST, RESPONSE> setTimeExtractor(
159159
return this;
160160
}
161161

162-
public InstrumenterBuilder<REQUEST, RESPONSE> setDisabled(boolean disabled) {
163-
this.disabled = disabled;
162+
/**
163+
* Allows enabling/disabling the {@link Instrumenter} based on the {@code enabled} value passed as
164+
* parameter. All instrumenters are enabled by default.
165+
*/
166+
public InstrumenterBuilder<REQUEST, RESPONSE> setEnabled(boolean enabled) {
167+
this.enabled = enabled;
164168
return this;
165169
}
166170

171+
/**
172+
* Allows to disable the {@link Instrumenter}.
173+
*
174+
* @deprecated Use {@link #setEnabled(boolean)} instead.
175+
*/
176+
@Deprecated
177+
public InstrumenterBuilder<REQUEST, RESPONSE> setDisabled(boolean disabled) {
178+
return setEnabled(!disabled);
179+
}
180+
167181
// visible for tests
168182
/**
169183
* Enables CLIENT nested span suppression based on the instrumentation type.

instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterTest.java

+11
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,17 @@ void shouldUseContextCustomizer() {
518518
assertThat(context.get(testKey)).isEqualTo("testVal");
519519
}
520520

521+
@Test
522+
void shouldDisableInstrumenter() {
523+
Instrumenter<String, String> instrumenter =
524+
Instrumenter.<String, String>builder(
525+
otelTesting.getOpenTelemetry(), "test", request -> "test span")
526+
.setEnabled(false)
527+
.newInstrumenter();
528+
529+
assertThat(instrumenter.shouldStart(Context.root(), "request")).isFalse();
530+
}
531+
521532
@Test
522533
void clientNestedSpansSuppressed_whenInstrumentationTypeDisabled() {
523534
// this test depends on default config option for InstrumentationType

instrumentation/dropwizard/dropwizard-views-0.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardviews/DropwizardSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public final class DropwizardSingletons {
1717
private static final Instrumenter<View, Void> INSTRUMENTER =
1818
Instrumenter.<View, Void>builder(
1919
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, DropwizardSingletons::spanName)
20-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
20+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2121
.newInstrumenter();
2222

2323
private static String spanName(View view) {

instrumentation/grails-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grails/GrailsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public final class GrailsSingletons {
1818
INSTRUMENTER =
1919
Instrumenter.<HandlerData, Void>builder(
2020
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, HandlerData::spanName)
21-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
21+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2222
.newInstrumenter();
2323
}
2424

instrumentation/jaxrs/jaxrs-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v1_0/JaxrsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public final class JaxrsSingletons {
3131
INSTRUMENTATION_NAME,
3232
CodeSpanNameExtractor.create(codeAttributesGetter))
3333
.addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter))
34-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
34+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
3535
.newInstrumenter();
3636
}
3737

instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v2_0/JaxrsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public final class JaxrsSingletons {
3131
INSTRUMENTATION_NAME,
3232
CodeSpanNameExtractor.create(codeAttributesGetter))
3333
.addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter))
34-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
34+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
3535
.newInstrumenter();
3636
}
3737

instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/axis2/Axis2Singletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class Axis2Singletons {
1818
INSTRUMENTER =
1919
Instrumenter.<Axis2Request, Void>builder(
2020
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, Axis2Request::spanName)
21-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
21+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2222
.newInstrumenter();
2323
}
2424

instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class CxfSingletons {
1818
INSTRUMENTER =
1919
Instrumenter.<CxfRequest, Void>builder(
2020
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, CxfRequest::spanName)
21-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
21+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2222
.newInstrumenter();
2323
}
2424

instrumentation/jaxws/jaxws-2.0-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class MetroSingletons {
1818
INSTRUMENTER =
1919
Instrumenter.<MetroRequest, Void>builder(
2020
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, MetroRequest::spanName)
21-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
21+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2222
.newInstrumenter();
2323
}
2424

instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class JaxWsSingletons {
2525
INSTRUMENTATION_NAME,
2626
CodeSpanNameExtractor.create(codeAttributesGetter))
2727
.addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter))
28-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
28+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2929
.newInstrumenter();
3030
}
3131

instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ private static Instrumenter<MessageWithDestination, Void> buildConsumerInstrumen
4646
MessagingSpanNameExtractor.create(getter, operation))
4747
.addAttributesExtractor(MessagingAttributesExtractor.create(getter, operation))
4848
.setTimeExtractor(new JmsMessageTimeExtractor())
49-
.setDisabled(!ExperimentalConfig.get().messagingReceiveInstrumentationEnabled())
49+
.setEnabled(ExperimentalConfig.get().messagingReceiveInstrumentationEnabled())
5050
.newInstrumenter(SpanKindExtractor.alwaysConsumer());
5151
}
5252

instrumentation/jsf/jsf-mojarra-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mojarra/MojarraSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class MojarraSingletons {
2121
Instrumenter.<JsfRequest, Void>builder(
2222
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, JsfRequest::spanName)
2323
.setErrorCauseExtractor(new JsfErrorCauseExtractor())
24-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
24+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2525
.newInstrumenter();
2626
}
2727

instrumentation/jsf/jsf-myfaces-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/myfaces/MyFacesSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class MyFacesSingletons {
2020
Instrumenter.<JsfRequest, Void>builder(
2121
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, JsfRequest::spanName)
2222
.setErrorCauseExtractor(new MyFacesErrorCauseExtractor())
23-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
23+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2424
.newInstrumenter();
2525
}
2626

instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static Instrumenter<ReceivedRecords, Void> createConsumerReceiveInstrumen
7171
.addAttributesExtractor(MessagingAttributesExtractor.create(getter, operation))
7272
.addAttributesExtractors(extractors)
7373
.setTimeExtractor(new KafkaConsumerTimeExtractor())
74-
.setDisabled(!ExperimentalConfig.get().messagingReceiveInstrumentationEnabled())
74+
.setEnabled(ExperimentalConfig.get().messagingReceiveInstrumentationEnabled())
7575
.newInstrumenter(SpanKindExtractor.alwaysConsumer());
7676
}
7777

instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public final class WebfluxSingletons {
3030
}
3131

3232
INSTRUMENTER =
33-
builder.setDisabled(ExperimentalConfig.get().suppressControllerSpans()).newInstrumenter();
33+
builder.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled()).newInstrumenter();
3434
}
3535

3636
public static Instrumenter<Object, Void> instrumenter() {

instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcSingletons.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public final class SpringWebMvcSingletons {
2121
HANDLER_INSTRUMENTER =
2222
Instrumenter.<Object, Void>builder(
2323
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, new HandlerSpanNameExtractor())
24-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
24+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2525
.newInstrumenter();
2626

2727
MODEL_AND_VIEW_INSTRUMENTER =
@@ -30,7 +30,7 @@ public final class SpringWebMvcSingletons {
3030
INSTRUMENTATION_NAME,
3131
new ModelAndViewSpanNameExtractor())
3232
.addAttributesExtractor(new ModelAndViewAttributesExtractor())
33-
.setDisabled(ExperimentalConfig.get().suppressViewSpans())
33+
.setEnabled(ExperimentalConfig.get().viewTelemetryEnabled())
3434
.newInstrumenter();
3535
}
3636

instrumentation/spring/spring-ws-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/ws/SpringWsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class SpringWsSingletons {
2525
INSTRUMENTATION_NAME,
2626
CodeSpanNameExtractor.create(codeAttributesGetter))
2727
.addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter))
28-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
28+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
2929
.newInstrumenter();
3030
}
3131

instrumentation/struts-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/struts2/StrutsSingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class StrutsSingletons {
2626
INSTRUMENTATION_NAME,
2727
CodeSpanNameExtractor.create(codeAttributesGetter))
2828
.addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter))
29-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
29+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
3030
.newInstrumenter();
3131
}
3232

instrumentation/tapestry-5.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tapestry/TapestrySingletons.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class TapestrySingletons {
2727
}
2828
return ErrorCauseExtractor.jdk().extractCause(error);
2929
})
30-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
30+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
3131
.newInstrumenter();
3232
}
3333

instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ public class VaadinSingletons {
3636
GlobalOpenTelemetry.get(),
3737
INSTRUMENTATION_NAME,
3838
CodeSpanNameExtractor.create(clientCallableAttributesGetter))
39-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
39+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
4040
.addAttributesExtractor(CodeAttributesExtractor.create(clientCallableAttributesGetter))
4141
.newInstrumenter();
4242

4343
REQUEST_HANDLER_INSTRUMENTER =
4444
Instrumenter.<VaadinHandlerRequest, Void>builder(
4545
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, VaadinHandlerRequest::getSpanName)
46-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
46+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
4747
// add context for tracking nested request handler calls
4848
.addContextCustomizer(
4949
(context, vaadinHandlerRequest, startAttributes) ->
@@ -53,13 +53,13 @@ public class VaadinSingletons {
5353
RPC_INSTRUMENTER =
5454
Instrumenter.<VaadinRpcRequest, Void>builder(
5555
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, VaadinSingletons::rpcSpanName)
56-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
56+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
5757
.newInstrumenter();
5858

5959
SERVICE_INSTRUMENTER =
6060
Instrumenter.<VaadinServiceRequest, Void>builder(
6161
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, VaadinServiceRequest::getSpanName)
62-
.setDisabled(ExperimentalConfig.get().suppressControllerSpans())
62+
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
6363
// add context for tracking whether any request handler handled the request
6464
.addContextCustomizer(
6565
(context, vaadinServiceRequest, startAttributes) ->

0 commit comments

Comments
 (0)